【问题标题】:Hello Need Help placing a second JButton in a JFrame您好需要帮助在 JFrame 中放置第二个 JButton
【发布时间】:2013-07-12 06:17:14
【问题描述】:

您好,感谢您事先的任何回复。我是 Java 编程的初学者,并决定用几个按钮制作一个基本的 J Frame。我正在努力自己解决这个问题,以及在继续下一步之前什么时候解决这个问题。下面我写了一些 J Frame 的代码,我将两个按钮都放在了我想要的位置,但是当我添加第二个按钮时,它与第一个按钮重叠。我想知道我是否以正确的方式处理这个问题以及如何改进它。

    Frame guiWindow = new Frame();
    JPanel pnlButton = new JPanel();
    JButton btnAdd = new JButton("A");
    JPanel pnlButton2 = new JPanel();
    JButton btnAdd2 = new JButton("B");

    public Frame1() {    

        //Button 1
        pnlButton.setLayout(null);
        btnAdd.setBounds(40, 300, 100, 50);  
        pnlButton.setBounds(40, 300, 50, 50);
        pnlButton.add(btnAdd);
        add(pnlButton);           

        //Button2        
        pnlButton2.setLayout(null);
        btnAdd2.setBounds(260, 300, 100, 50);  
        pnlButton2.setBounds(260, 300, 100, 50);
        pnlButton2.add(btnAdd2);
        add(pnlButton2);
        setSize(400, 400);
        setTitle("Pratice");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}

【问题讨论】:

    标签: java swing layout jframe jbutton


    【解决方案1】:

    好的,您是新手,这很容易理解为什么会发生这种情况。首先要知道,当您将 JPanel 添加到 JFrame 中时;除非您正在做某种定位或需要的东西,否则您只需添加一个 JPanel。这可能就是它重叠的原因。您正在尝试添加一件事,然后在同一地区添加另一件事。您需要做的就是取出 pnlButton2,并使用 pnlButton 作为添加按钮的主要方式 :) 您还可以使用名为 GridLayout 的布局管理器。这可能是一件非常令人困惑的事情,但我可以解释一下:

    GridLayout 是一种在 JFrame 或任何包含项目的框架上创建网格效果的方法。它会将您的按钮对齐在您选择的大小的网格中。

    这里有一个链接可以帮助解释更多:GridLayout - Oracle Java Helper

    但是这里有一些代码来解释我在 JPanel 和其他东西上谈论的内容:)

    希望我对你有所帮助,并没有让你感到困惑

    Frame guiWindow = new Frame();
    JPanel pnlButton = new JPanel();
    JButton btnAdd = new JButton("A"); 
    //JPanel pnlButton2 = new JPanel(); not needed :)
    JButton btnAdd2 = new JButton("B");
    
    public Frame1() {
    
    
    //Button 1
    
    pnlButton.setLayout(null);
    btnAdd.setBounds(40, 300, 100, 50);  
    pnlButton.setBounds(40, 300, 50, 50);
    pnlButton.add(btnAdd);
    pnlButton.add(btnAdd2); // see how we add the second button?
    add(pnlButton);
    
    /* remove this section
    //Button2        
    pnlButton2.setLayout(null);
    btnAdd2.setBounds(260, 300, 100, 50);  
    pnlButton2.setBounds(260, 300, 100, 50);
    pnlButton2.add(btnAdd2);
    add(pnlButton2);
    */
    
    
    
    
    setSize(400, 400);
    setTitle("Pratice");
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 2016-10-23
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多