我遇到了一个JButton ActionListener的问题。我在另一个类中定义了一个doTheCleaning()方法,当它被调用时,会对我的GUI进行一系列更改。
public void doTheCleaning(){
//change image icon
//had thread.sleep here
//insert to text area
//had thread.sleep here
//etc
}
然后在另一个类中,我实例化了包含doTheCleaning()方法的类,并将我的ActionListener写为我的jbutton的actionperformed()方法,如下所示:
public void actionPerformed(ActionEvent e){
//some code
//newClass.doTheCleaning();
}
我知道如何执行addActionListener()等操作,所以不需要对此进行质疑。我的问题是,当调用doTheCleaning()方法时,在我的GUI中执行的所有更改仅在单击按钮后应用。当这种情况发生时,标签和文本区域中发生的更改之间的连续性未显示出来。如果我直接在测试类中调用代码,则代码可以正常工作,但在actionperformed方法中调用它只显示我的GUI的最终状态。我需要展示哪个元素先改变,然后是什么,依此类推。
我如何实现这一点,当我需要这些更改仅在单击JButton时发生时?
**我还不太擅长使用java进行GUI。我希望你们能理解我的意思,即使我没有给出我的代码。但如果必要的话,我可以提供。谢谢。
Thread.sleep(...)
的调用。相反,使用javax.swing.Timer来实现此目的,可能是因为您没有在EDT - 事件分派线程上更新您的内容,这可能会对您有所帮助 :-) - nIcE cOw