相关疑难解决方法(0)

SwingUtilities.invokeLater

我的问题与此有关SwingUtilities.invokeLater.我应该什么时候使用它?每次需要更新GUI组件时是否必须使用?它到底是做什么的?是否有替代品,因为它听起来不直观,并添加看似不必要的代码?

java swing multithreading awt event-dispatch-thread

52
推荐指数
4
解决办法
3万
查看次数

java swing工作线程等待EDT

我有一个工作线程,应该等待EDT更新GUI,然后再继续执行.我已经使用发布方法告诉EDT改变了一些东西.我如何让工人等待改变?

java swingworker

5
推荐指数
2
解决办法
2043
查看次数

JButton ActionListener - 仅在单击JButton之后才更新GUI

我的JButton ActionListener有问题.我有一个在另一个类中定义的doTheCleaning()方法,在调用时会对我的GUI进行一系列更改.

public void doTheCleaning(){
    //change image icon
    //had thread.sleep here
    //insert to text area
    //had thread.sleep here
    //etc
}
Run Code Online (Sandbox Code Playgroud)

然后在另一个类,我实例包含我doTheCleaning()方法的类和有我的ActionListener与我的JButton这样写我的actionPerformed()方法写的:

public void actionPerformed(ActionEvent e){
   //some code
   //newClass.doTheCleaning();
}
Run Code Online (Sandbox Code Playgroud)

我知道如何像addActionListener()和东西那样做其余的事情,所以不需要对此提出质疑.我担心的是,调用doTheCleaning()方法时执行的GUI中的所有更改仅在单击按钮后才适用.发生这种情况时,我的标签和textarea中发生的更改之间的连续性未显示.如果我直接在我的测试器类中调用它,但在actionperformed方法中调用它只显示我的GUI的最终状态,代码工作正常.我需要先显示哪个元素已更改,然后是下一个元素,依此类推.

当我需要在单击JButton时才发生这些更改时,我怎么能实现它?

**我在java中用GUI做的不太好.我希望你们在没有我提供代码的情况下理解我的观点.但如果有必要,我可以.谢谢.

java user-interface swing swingworker jbutton

5
推荐指数
1
解决办法
4388
查看次数