【发布时间】:2013-01-30 12:14:03
【问题描述】:
我现在正在学习 java GUI 的基础知识。我有这种奇怪的情况,我无法真正解释。
我有一个 GUI 类,我在其中构建了一个简单的 JFrame。如果我使用.setVisible(true) 在构造函数中一切正常,如果我在外部使用它,没有加载(窗口是可见的,但是按钮,什么不是)。
为什么会这样?
public class GUI extends JFrame {
private JTextField humanYears_TextField = new JTextField(3);
private JTextField dogYears_TextField = new JTextField(3);
private JButton convert_Button = new JButton("Convert");
private JLabel greeting = new JLabel ("Dog years to Human years!");
public GUI () {
JFrame window = new JFrame();
JPanel content = new JPanel();
content.setLayout(new FlowLayout());
content.add(this.greeting);
content.add(new JLabel("Dog Years: "));
content.add(this.dogYears_TextField);
content.add(this.convert_Button);
content.add(new JLabel("Human Years: "));
content.add(this.humanYears_TextField);
window.setContentPane(content);
pack(); // aplica contentPane-ul
window.setLocationRelativeTo(null);
window.setTitle("Dog Year Converter");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true); // IF IT'S HERE IT WORKS
}
}
public static void main(String[] args) {
GUI dogYears = new GUI();
//dogYears.setVisible(true); // IF IT'S HERE
//NOTHING EXCEPT THE WINDOW LOADS
}
为什么会这样?
在这个例子中没关系,但是如果我想让一个窗口只有在我点击一个按钮或其他东西时才可见怎么办?
【问题讨论】:
标签: java swing user-interface jframe multiple-instances