Java Swing布局没有出现

时间:2016-07-18 03:57:37

标签: java swing jframe

我刚开始用Java创建GUI,通过这个基本设置,我无法在JFrame中显示任何内容:

public class Main extends JFrame {

public static void main(String[] args) {
    JFrame jframe = new JFrame();
    jframe.setSize(400,400); // setting size
    jframe.setVisible(true); // Allow it to appear
    jframe.setTitle("Lab 7");
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Main init = new Main(); 
}  

 public Main() {
    Container pane = getContentPane();
    pane.setBackground(Color.BLUE);
    pane.setLayout(new FlowLayout());
    JButton add = new JButton("Add");
    JButton close = new JButton("Close");
    JTextArea area = new JTextArea();
    JScrollPane scroll = new JScrollPane(area);

    add.setBounds(70, 125, 80, 20);
    close.setBounds(70, 115, 80, 20);
    pane.add(add);
    pane.add(close);
    pane.add(scroll);
    AddClick added = new AddClick();
    add.addActionListener(added);
}
}

我也尝试将所有JFrame内容移动到公共Main()中,但它导致无限量的窗口打开,我不得不每次都结束程序。

1 个答案:

答案 0 :(得分:2)

您正在创建两个单独的JFrame:一个是您的Main类,另一个是不相关的JFrame。大多数自定义(包括添加组件)都发生在其构造函数中的Main。但是你只能将另一个JFrame设置为可见。

Main实例用作JFrame,而不是创建另一个实例,问题将得到解决。

public static void main(String[] args) {
    JFrame jframe = new Main(); //Use an instance of Main as your JFrame
    jframe.setSize(400,400); // setting size
    jframe.setVisible(true); // Allow it to appear
    jframe.setTitle("Lab 7");
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}