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 变量问题的主要内容,如果未能解决你的问题,请参考以下文章