我想这样做:当主线程运行时,我想在不干扰主线程和冻结摆动组件的情况下执行一系列动作,并且我可以从主线程强制停止执行。其中一个动作可以操纵摆动组件。
一些帮助想象的代码:
public class Test extends JFrame{
public Test()
{
super("Test");
JButton button = new JButton("Stop!");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
//STOP THE EXECUTION
}
});
this.add(button);
//START OF EXECUTION
System.out.println("FOO");
System.out.println("BAR");
button.setText("Hello");
System.out.println("THIS");
//END OF THE EXECUTION
this.pack();
this.setVisible(true);
}
}
我尝试只使用线程,它抛出异常,我忘记了异常是什么,但基本上它说我不能从非 AWT 线程或其他东西操作摆动组件。
之后我尝试同时使用 Thread 和 swingUtilities,但它们在执行完成后执行 swing 组件操作。我该怎么做呢?