Thread t = new Thread(new Runnable() {
@Override
public void run() {
//work here
}
}); t.start();//start thread
但是我建议在Timer
它上运行一个Swing EDT
:
根据您的问题,我建议使用Timer
创建线程点用于一般知识。
探测是线程未在您的swing GUI的EDT线程上运行,就像Timer
这样:
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
int count=0;
public void actionPerformed(ActionEvent evt) {
if(count==10) {//we did the task 10 times
((Timer)evt.getSource()).stop();
}
label.setLocation((label.getLocationOnScreen().x+10), label.getLocationOnScreen().y);
System.out.println(SwingUtilities.isEventDispatchThread());
count++;
}
};
new Timer(delay, taskPerformer).start();