- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
try{
ta.append("Searching Initiated at: "+datetime()+"\n");
gui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
task.execute();
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
gui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
//Enable the next stage in the YD process and disable the previously executed functions
clusAn.setEnabled(true);
open.setEnabled(false);
statCl.setEnabled(false);
}catch (Exception IOE){
}
}
});
您好,我设计的这个应用程序的最后阶段有点痛苦。
基本上,当用户单击按钮时,我希望光标变为“等待”版本,然后一旦后台进程(task.execute)完成,光标就会恢复正常。
task.execute 不在同一个类中,因此我不能直接调用“gui.setCursor”,因为它无法将 GUI 识别为变量。
不知道该怎么做,所以任何建议都会很好
谢谢:D
最佳答案
修改任务的类,以便它将您的 GUI 作为构造函数参数。这样,当任务完成时,它可以调用 setCursor
方法。
您应该使用 SwingWorker 来完成这种事情。
编辑:
任务代码如下:
public class MySwingWorker extends SwingWorker<Void, Void> {
/**
* The frame which must have the default cursor set
* at the end of the background task
*/
private JFrame gui;
public MySwingWorker(JFrame gui) {
this.gui = gui;
}
// ...
@Override
protected void done() {
// the done method is called in the EDT.
// No need for SwingUtilities.invokeLater here
gui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
关于Java SwingUtilities.invokeLater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091835/
有人可以强调这两者之间的区别以及两者都是必需的实例吗?! 我有一个可以互换使用的应用程序,但想知道一个是否比另一个更好。显然它们都接受 Runnable object,所以对我来说 - 我想我可以使用
EventQueue.invokeLater() 和 SwingUtilities.invokeLater() 有什么不同吗? 或者是后者只是为了设计而建立在前者之上(没有修改)? 最佳答案 没有没有
在我的方法 doWork() 中,我调用 SwingUtilities.invokeLater(new Runnable(){ public void run() { button.setBackgr
我怎么感觉SwingUtilities.invokeLater()在任何swing应用中的必要性。请给出一些代码示例。 最佳答案 每当您需要更新 GUI 中的某些内容时,您应该通过 AWT 事件线程
.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){
我按照教程创建了一个信使。我正确地输入了代码,并且我对所有内容的作用有相当基本的了解。 尽管如此,我最终并没有得到相同的结果。代码如下: public class Server extends JFr
是否有更优雅的方式来完成我在下面所做的事情?也就是说,是否有比轮询和 hibernate 、轮询和 hibernate 等更优雅的方式来知道何时 Runnable.run()方法已通过 invokeL
我在使用 invokeLater 更新 JLabel 值时遇到问题。我在运行 invokeLater 的主函数之外有一个单独的方法,但是当我单击搜索按钮更新值时,它不会在同一个 gui 实例中更新。我
我使用推荐的代码启动我的交互式程序,它使用 Swing。 : public static void main(String[] args) { javax.swing.Swin
EventQueue javadoc 声明要求排队的事件按顺序和顺序分派(dispatch)。 与 EventQueue.invokeLater 一起排队的 Runnable 保证在后续用户事件(例如
有时我觉得使用 AsyncTask 对任务来说太过分了,我正在寻找类似的功能,如 Android 中的 SwingUtilities.invokeLater。因为我只想执行一行代码,没有必要为此创建一
我的问题与 SwingUtilities.invokeLater 有关。我应该什么时候使用它?每次需要更新 GUI 组件时都必须使用吗?它究竟是做什么的?是否有替代方案,因为它听起来不直观并且添加了看
我有一个问题,关于使用 SwingUtilities 的 invokeLater 方法的正确做法是什么。 因此,首先,我想确认我的理解是否正确。 据我所知,必须在 EDT 上更改 GUI,因为 Swi
我有一个线程使用 SwingUtilities.invokeLater 在我的 JFrame 上显示更新。线程的速度是可调的,当它设置为全速(更新之间没有 sleep )时,我的程序会严重减慢。我想问
我从来不理解SwingUtilities.invokeLater,这就是我一直避免使用它直到现在的原因。但是确保 Swing Thread 安全非常重要。好吧,请原谅,因为这是我第一次这样做。我试图在
这个问题已经有答案了: What does SwingUtilities.invokeLater do? [duplicate] (5 个回答) SwingUtilities.invokeLater
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
我正在使用 invokeLater() 在 JEditPane 中加载 html 页面,该 JEditPane 位于 JPanel 中,而 JPanel 位于 JTabbedPane 中。 我的所有方
I had a problem earlier我试图将对象添加到 Canvas 中,但 SwingUtilities.invokeLater 尚未真正完成其工作。我确实需要能够可靠地向此 JPanel
我正在尝试使用多线程模拟一个简单的恒温器。恒温器应提高温度以达到用户请求的值,即下面代码中的“最大值”。我有两个线程,一个负责提高温度,另一个负责降低温度。但减少的条件是必须在关气时才运行。但我在实现
我是一名优秀的程序员,十分优秀!