如何从main方法调用构造函数

时间:2016-02-17 16:26:28

标签: java constructor jframe

import javax.swing.JFrame;

public class MainClass {
    public static void main(String[] args) {

        System.out.println("Starting");
    }

    MainClass() {
        JFrame w = new JFrame();
        w.setVisible(true);
        w.setSize(640, 480);
    }
}

如何从Main方法调用构造函数以输出JFrame窗口。 或者我应该使用完整的不同类来执行此操作?

2 个答案:

答案 0 :(得分:1)

简单......

public static void main(String[] args) {
     MainClass mainClass = new MainClass();
}

此...

答案 1 :(得分:1)

使用Swing组件有一个非常重要的规则:必须在事件派发线程(EDT)中进行所有更改。这个includes creating the UI组件。

所以你应该这样做:

final class Main {

  public static void main(String... argv) {
    SwingUtilities.invokeLater(Main::setup);
  }

  private static void setup() {
    Main m = new Main();
    /* Do whatever... */
  }

}

这会使用invokeLater()方法,该方法需要Runnable。如果需要将参数传递到设置中,可以使用lambda,或者使用可以配置的对象实现Runnable接口,而不是方法引用。