jjzjj

invokeLater

全部标签

java - 谁能给我解释一下这个 javax swing 方法?

我无法理解这个简单的代码:javax.swing.SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createAndShowGUI();}});任何人都可以向我解释它是如何工作的(简单来说,因为我是新手)?此短代码是此largercode的一部分.更具体地说,我有以下问题:“publicvoidrun”是否定义了一个新方法?如果是这样,为什么它在另一个方法中定义(参见“更大的代码”以供引用)?如果“publicvoidrun”定义了一个新方法,定义一个只包含一行代码的方法(createAndShowGUI)的原因是什么?

java - GWT:如何将事件放入队列(相当于 Swing invokeLater())?

有以下情况:模糊文本框(输入)将文本写入我的状态框(在某些情况下),单击按钮也会将文本写入状态框。现在,当单击按钮时,如果它获得焦点,它将模糊我的文本框,这将导致状态框闪烁,因为首先blurHandler将写入其结果,然后是clickHandler。因为我希望clickHandler的结果出现,所以我的想法是让blurHandler在队列末尾放置一个事件,检查clickHandler之前是否已经写入结果。在Swing中我会尝试SwingUtilities.invokeLater(可运行)。GWT中的等价物据说是Scheduler但是那些延迟或最终命令似乎总是在当前事件之后和下一个事件之

java - InvokeLater 使用事件排序

EventQueuejavadoc声明要求排队的事件按顺序和顺序分派(dispatch)。与EventQueue.invokeLater一起排队的Runnable保证在后续用户事件(例如MouseEvent)之前被分派(dispatch)是否正确?换句话说,如果用户事件发生在EventQueue.invokeLater之后,事件处理程序是否可以在排队的Runnable之前执行。谢谢! 最佳答案 API文档声明事件是Inthesameorderastheyareenqueued.但是如果您检查源代码,您会发现情况并非总是如此,尽管对于

Java - SwingWorker 和 SwingUtilities.invokeLater() 之间的区别

SwingWorker用于以下目的:用于在不同的线程中运行长时间运行的任务,以防止GUI无响应用于在任务结束时通过done()方法使用长时间运行的任务产生的结果更新GUI。在publish()和process()方法的帮助下,使用任务生成和发布的中间结果不时更新GUI。SwingUtilities.invokeLater()可以按如下方式执行上述任务:我们可以执行ExecutorService.submit(newMyRunnable())而不是从EDT执行SwingWorker.execute()方法,因为它还会创建另一个线程可以执行长时间运行的任务。为了在任务结束时更新GUI,我们

java - 何时使用 SwingUtilities.invokeAndWait/invokeLater

我在某处读到,对于任何影响gui视觉效果的线程,它都应该使用SwingUtilities.invokeAndWait/invokeLater在EDT中运行对于基本的gui,是否有必要使用invokeAndWait在EDT的行中放置类似newSwingGUI().setVisible(true);的内容?只是为了展示?这个算吗? 最佳答案 对您的问题的简短回答是:是的,即使调用setVisible也应该在EDT上发生。要找出当前线程是否是EDT,可以使用EventQueue#isDispatchThread方法一些引用链接:Multi

JavaFx 对 SwingUtilities.invokeLater 的响应

所以我知道JavaFx在使用线程时更新GUI的方法称为Task但代码是否以类似的方式工作或者是否存在任何差异。让我举一个挥杆的例子:作为线程运行的GUI之外的另一个类publicvoidrun(){while(socket.isConnected()){Stringx=input.next();System.out.println(x);mg.updateChat(x)}}在实际的GUI中publicvoidupdateChat(finalStringinput){SwingUtilities.invokeLater(newRunnable(){@Overridepublicvoidr

java - SwingWorker 和 SwingUtilities.invokeLater 的区别

我需要在单独的线程中运行Swing应用程序中的某些方法。使用SwingWorker和SwingUtilities.invokeLater有什么区别。我应该使用哪个来在Swing应用程序中运行线程?我无法在教程中找到确切的信息,网址为http://java.sun.com/docs/books/tutorial/uiswing/concurrency/index.html 最佳答案 SwingUtilities.invokeLater如果您有必须在EDT中运行的内容,则使用它。如果您有一个长时间运行的任务,则需要使用SwingWork

java - 为什么invokeLater在主线程中执行?

我刚刚遇到了这个“错误”,但我不确定这是否是有意的:代码:publicstaticObjectsomeMethod(){assertSwingUtilities.isEventDispatchThread();returnnewObject();}publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(()->someMethod().toString());//FirstExampleSwingUtilities.invokeLater(someMethod()::toString);//SecondExample}

java - 为什么invokeLater在主线程中执行?

我刚刚遇到了这个“错误”,但我不确定这是否是有意的:代码:publicstaticObjectsomeMethod(){assertSwingUtilities.isEventDispatchThread();returnnewObject();}publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(()->someMethod().toString());//FirstExampleSwingUtilities.invokeLater(someMethod()::toString);//SecondExample}

java - SwingUtilities.invokeLater() 为什么需要它?

为什么要把GUI更新代码放在SwingUtilities.invokeLater()中?为什么Swing本身不能在内部处理它?为什么调用者必须关心swing如何处理UI更新? 最佳答案 Swing对象arenotthreadsafe.顾名思义,SwingUtilities.invokeLater()允许在稍后的某个时间点执行任务;但更重要的是,任务将在AWT事件调度线程上执行。使用invokeLater时,任务异步执行;还有invokeAndWait,直到任务执行完毕才会返回。关于不使Swing线程安全的决定的一些信息可以在这里找到