我刚开始用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()中,但它导致无限量的窗口打开,我不得不每次都结束程序。
答案 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);
}