我创建了3个java文件:main.java,GUI.java,Serial.java
在Main中,我创建了两个最后的java文件的实例。 我可以从Main中调用gui和serial的方法。 我不能从Main之外的实例gui和serial调用方法。
package main;
public class Main {
public static void main(String[] args) {
GUI gui = new GUI();
gui.setVisible(true);
Serial serial = new Serial();
serial.getPorts();
fillList();
}
public void fillList () {
gui.setList("hoi");
}
}
这是为什么?如何从方法fillList中调用gui中的方法? 感谢您的任何见解。
答案 0 :(得分:2)
实例仅存在于它们声明的方法中,在本例中是构造函数。解决此问题的常用方法是在类中声明field
,并在构造函数(或其他方法)中指定该字段的值。尝试:
package main;
public class Main {
// private GUI gui; // replaced this line with the below. See comment 5
private static GUI gui; // this is the new field declaration
public static void main(String[] args) {
gui = new GUI(); // note I removed the class declaration here since it was declared above.
gui.setVisible(true);
Serial serial = new Serial();
serial.getPorts();
fillList();
}
public void fillList () {
gui.setList("hoi"); // now this method has access to the gui field
}
}