Java 显示线程和摆动的更新延迟
每次启动swing接口时,我都会有一个线程更新我的swing接口。即使我使用了Java 显示线程和摆动的更新延迟,java,multithreading,swing,Java,Multithreading,Swing,每次启动swing接口时,我都会有一个线程更新我的swing接口。即使我使用了SwingUtilities类的invokeLater()方法,我仍然有这个延迟 这是我的线程代码的运行: public void run() { final int timeout=2000; SwingUtilities.invokeLater(new Runnable() { public void run() { try {
SwingUtilities
类的invokeLater()
方法,我仍然有这个延迟
这是我的线程代码的运行:
public void run() {
final int timeout=2000;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
if (InetAddress.getByName(host).isReachable(timeout)){
ServerFrame.listModel.addElement(InetAddress.getByName(host).getHostName() + '\n');
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
蚂蚁:我就是这么叫它的
for (int i =63;i<66 ;i++) {
ping p = new ping("192.168.1."+i);
p.start();
}
for(int i=63;i您的代码似乎违背了它的目的。注意:您正在从线程向主GUI线程提交代码,该线程执行网络调用并等待
您应该从线程代码中的网络调用中获得结果,然后使用invokLater
将结果填充到GUI中。看起来您的代码违背了它的目的。注意:从您的线程,您将代码提交给主GUI线程,该线程执行网络调用,并且需要等待
您应该从线程代码中的网络调用中获得结果,然后使用invokLater
将结果填充到GUI中。通读,特别是看,它就是为此目的设计的……通读,特别是看,它就是为此目的设计的。。。