使用createButton方法在JFrame中创建按钮

时间:2019-02-24 11:51:21

标签: java swing jframe jbutton

我有两种方法:createGuicreateButton。 我在createGui方法中调用了main方法。 已创建GUI。

现在我想通过在JButton方法中使用JFrame方法在createButton中添加其他组件,例如createGui

如何通过调用createButton方法在框架中添加按钮?

public class JavaGui {

    public static void main(String[] args){
        CreateGui.createGui();
    }
}

class CreateGui{

    static GraphicsConfiguration gc;

    public static void createGui(){
        JFrame frame= new JFrame(gc);   
        frame.setTitle("gui");
        frame.setSize(600, 400);
        frame.setLocation(200, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
    }

    public static void createButton(){
        JButton button=new JButton();
    }
}

3 个答案:

答案 0 :(得分:0)

您应该拥有一个扩展JFrame Java类的类,然后可以轻松地向其添加其他组件(即CreateGui扩展了JFrame,然后向其添加JPanel,然后添加组件)。您的操作方式使它看起来比应有的复杂。

答案 1 :(得分:0)

简而言之:

frame.getContentPane().add(myBytton);

之后,您需要阅读有关布局管理器的信息。

答案 2 :(得分:0)

我认为您可以在代码中进行一些改进。

  • 在面向对象的编程中,最好使用名词作为类名。因此,CreateGui不是一个很好的类名。
  • 在面向对象的编程中,请尽量减少对static的使用。
  • 您真的需要两种方法createGui()createButton()吗?我认为您可以使用单一方法createGui()来做到这一点。

考虑到以上几点,下面的示例代码演示了如何构建这样的简单UI。

import javax.swing.*;
import java.awt.BorderLayout;

public class JavaGui {
  public static void main(String[] args) {
    JFrame gui = createGui();
    gui.setVisible(true);
  }

  private static JFrame createGui() {
    JFrame frame= new JFrame();
    frame.setTitle("gui");
    frame.setSize(600, 400);
    frame.setLocation(200, 200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);

    frame.getContentPane().add(new JScrollPane(new JTextArea()), BorderLayout.CENTER);
    frame.getContentPane().add(new JButton("Button"), BorderLayout.SOUTH);

    return frame;
  }
}