所以,我建立了一个在另一个线程上运行的套接字连接,现在我想在每次接受连接时更新连接数。现在我想在每次接受连接时更新连接数。但是一个公共变量的变化会被反映出来,但不会在标签的GUI中反映出来。下面是我的一段代码。
while(flag){
try{
s = ss2.accept();
ob.inc();
System.out.print(ob.counter.getText());
String x = ob.counter.getText();
System.out.println(x);
System.out.println("connection Established");
}
catch(Exception e){
e.printStackTrace();
System.out.println("Connection Error");
}
} }
GUI部分的代码是。
public void inc()
{
ctr++;
counter.setText(String.valueOf(ctr));
counter.repaint();
}
谁能告诉我如何动态地改变jLabel的值?
如果 inc()
是由一个工作线程(而不是主线程或UI线程)调用的,那么你会希望将该调用包裹在 SwingUtilities.invokeLater()
.