Java GUI/OOP 变量问题

Posted

技术标签:

【中文标题】Java GUI/OOP 变量问题【英文标题】:Java GUI/OOP variable issues 【发布时间】:2015-03-08 15:14:43 【问题描述】:

我不熟悉在 Java 中使用 GUI,所以我正在尝试调整我在控制台中编写的卫星导航系统以在 gui 中工作。 我设计了一个表单,我正在尝试获取程序,以便在单击按钮时它将访问一个类中的函数 - 但是在 JFrame 类中,我在尝试访问一个变量时遇到了问题我在 main 中创建。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)                                          
        // TODO add your handling code here:

        //graph.gatherData();
                                            

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) 
        /* Set the Nimbus look and feel */

        

        //</editor-fold>
        Engine graph = new Engine();
        graph.addNode("Aberdeen", 391, 807);
        graph.addNode("Blackpool", 331, 434);
        graph.addNode("Bristol", 358, 173);
        graph.addNode("Cardiff", 319, 174);

在 jButton1ActionPerformed 函数中,我希望能够访问图形。我试图在其他地方定义它,但它不起作用。有人能解释一下如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

因为main方法是静态方法。创建此类的一个实例,然后在构造函数中创建您的 Engine 实例(并将其作为变量存储在您的类中)。

编辑:一些代码:

public class MyClass 
    private Engine graph;

    public MyClass()
        graph = new Engine();
        graph.addNode("Aberdeen", 391, 807);
        graph.addNode("Blackpool", 331, 434);
        graph.addNode("Bristol", 358, 173);
        graph.addNode("Cardiff", 319, 174);
    

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)                                          
        // TODO add your handling code here:

        //graph.gatherData();
      

     /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
         /* Set the Nimbus look and feel */

        //Create instance of your class (im assuming your jframe?)
        new MyClass();
    

【讨论】:

非常感谢!用代码编辑之前的答案让我有点困惑,但代码帮助很大!我没有将我的 graph.addNode 代码行移到构造函数中,这让我很困惑!但是现在它正在按我的预期工作 - 谢谢!

以上是关于Java GUI/OOP 变量问题的主要内容,如果未能解决你的问题,请参考以下文章

java变量存储问题

java 静态变量list的问题

java_home环境变量配置的问题?

java IO流临时变量问题

java问题

java 变量名命名问题