我该如何在主程序中调用此函数?
private JFrame getMainpageframe1() {
if (mainpageframe1 == null) {
mainpageframe1 = new JFrame();
mainpageframe1.setSize(new Dimension(315, 306));
mainpageframe1.setContentPane(getMainpage());
mainpageframe1.setTitle("Shopping For Less: Main Page");
mainpageframe1.setVisible(true);
mainpageframe1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
return mainpageframe1;
}
public static void main(String[] args) {
//call that function to output the JFrame?
}
谢谢
最佳答案
首先,您需要将GUI内容放置在EDT上。 Java库为您提供了一些帮助程序方法,这些方法使SwingUtilities大大简化了您的生活。
其次,我将尝试稍微重构代码,并可能将要构建的JFrame移到单独的类中。在此代码示例中,我使它成为包含main方法的同一类的一部分,并且在此扩展了JFrame。
public class YourApp extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
YourApp app = new YourApp();
app.setupFrame();
}
});
}
private setupFrame() {
this.setSize(new Dimension(315, 306));
this.setContentPane(getMainpage());
this.setTitle("Shopping For Less: Main Page");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}