我该如何在主程序中调用此函数?

    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);
   }
 }

10-08 11:09