我经常使用JFrame,因为它们是应用程序,它们显然需要
public static void main(String[] args)
方法。他们还需要main()
中的行myJFrame g = new myJFrame();
在eclipse中,我收到变量g的警告:“永远不会读取局部变量g”,但如果省略该行,程序将无法运行。为什么我需要那条线,如果g是必不可少的,为什么会有警告呢?
答案 0 :(得分:4)
回答你的问题 - 可能你调用所有必要的方法(比如setVisible(true)
等)来在myJFrame
构造函数中运行应用程序。如果是这样 - 你不需要g
局部变量 - 你以后再也不用它(看警告)。
第一件事main
- 是所有Java应用程序的起点。
第二件事,如果你在JFrame
构造函数中做所有事情,那么你只需要行
new myJFrame(); //in Java it's convention to use first letter
//upper-case class names -> MyJFrame
以下是在您的应用程序中运行第一个窗口的简单,标准方法。
public final class App {
public static void main(final String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MainWindow frame = new MainWindow();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
在MainWindow
类中,您只创建Swing组件等。
答案 1 :(得分:1)
警告意味着您声明了一个局部变量/指针(在本例中称为g)但从未在代码中的任何位置实际使用它。有了警告,程序应该运行正常,但你有一个额外的“指针”到你从未使用过的JFrame。
如果您想通过该方法访问JFrame,请调用myJFrame g = new myJFrame();
,您应该保持这种方式。
否则new myJFrame();
就足够了。
答案 2 :(得分:0)
如果你不打算引用这个对象,那么初始化这个就足够了。
new myJFrame();