0

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

public static void main(String[] args)

方法。他们还需要 main() 中的行

myJFrame g = new myJFrame();

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

4

3 回答 3

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 组件等。

于 2012-07-19T18:54:32.347 回答
1

警告意味着您声明了一个局部变量/指针(在这种情况下称为 g ),但从未在代码中的任何地方实际使用它。有了警告,程序应该可以正常运行,但是你有一个额外的“指针”指向你从未使用过的 JFrame。

如果你想从你调用的方法访问你的 JFrame,myJFrame g = new myJFrame();你应该保持这种方式。否则new myJFrame();就足够了。

于 2012-07-19T18:55:08.057 回答
0

如果您不打算引用此对象,则初始化此对象就足够了。

new myJFrame();
于 2012-07-19T18:54:38.227 回答