我有三个类 - 创建类 2(GUI)的实例的类 1、实现 GUI 的类 2 和尝试更新 GUI 的类 3。
在第 1 课中,我创建了这样的 GUI:
s = new ServerSocket(6067);
//while(true){
Socket ClientSocket = s.accept(); // Accept connections
// Create instance of the GUI (class 2) on a new thread
work w = cpd.new work();
Thread t = new Thread(w);
t.start();
// Create instance of class 3 that uses the GUI on a new thread
Charger cpt = new ChargingPoint(ClientSocket, w.gui);
cpt.start();
//}
class work implements Runnable{
GUI gui;
public void run(){
try{
gui = new GUI();
gui.setVisible(true);
}
catch(Exception e){}
}
}
在第 2 类中,我实现了 GUI,并有一些方法可以对其进行更新,例如:
public void updateConsole(String text){
Console.append(text + "\n");
}
在第 3 类中,我尝试使用如下这些方法,但代码在到达如下语句时会卡住:
gui.updateConsole("Data: " + data);
当我将 GUI 类(2 类)作为主要类时,这对我有用。我将它的一个实例传递给所有其他类,他们可以使用它来更新 GUI 而不会出现任何问题。然而,这一次我正在从另一个类(类 1)创建 GUI,这个方法不再有效,我正在努力找出原因。
任何建议将不胜感激。