Eclipse JFrame警告

时间:2012-07-19 18:45:26

标签: java eclipse

我经常使用JFrame,因为它们是应用程序,它们显然需要

public static void main(String[] args)

方法。他们还需要main()

中的行
myJFrame g = new myJFrame();

在eclipse中,我收到变量g的警告:“永远不会读取局部变量g”,但如果省略该行,程序将无法运行。为什么我需要那条线,如果g是必不可少的,为什么会有警告呢?

3 个答案:

答案 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();