简介
我正在学习如何呈现 GUI 以供用户“友好”输入。下面我将引用一些网页,供有兴趣的人引用。
代码
public class TestGUI{
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public TestGUI()
{
prepareGUI();
}
private void prepareGUI()
{
mainFrame = new JFrame("TestGUI"); //Header name
mainFrame.setSize(420, 320); //Size of the frame
mainFrame.setLayout(new GridLayout(3, 1)); //??
mainFrame.addWindowListener(new WindowAdapter() //Waits for an user event
{
//When the frame is closes, the program does too.
@Override
public void windowClosing(WindowEvent windowEvent)
{
System.exit(0); //Exit program
}
});
mainFrame.setVisible(true);//GUI is visible
}
public static void main(String[] args) {
TestGUI test = new TestGUI(); //constructor
test.prepareGUI(); //Call the method
}
}
问题
运行代码时,我看到弹出了 2 个相同的框架。我去调试了一下,发现调用方法的时候执行了两次!
这是为什么?
我只在主函数中使用 testGUI.prepareGUI();
调用了一次。
学习 Java 基本 GUI 的网页
最佳答案
您也可以在构造函数中调用 prepareGUI()
。
public TestGUI()
{
prepareGUI();
}
当您调用new TestGUI()
时,此构造函数将被调用,该函数也会被调用。
关于java - 为什么JFrame的这个函数执行了两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57035770/