草庐IT

SwingUtilities2

全部标签

java - AWT 事件调度线程中的 SwingUtilities.invokeLater

如果您正在修改GUI并且处于AWT事件调度线程中,例如ActionListener,您是否应该使用SwingUtilities.invokeLater(Runnable)? 最佳答案 您必须始终在事件调度线程(EDT)中进行GUI更新。然而,正如Jeffrey在评论中指出的那样,Swing对象上的ActionListener.actionPerformed方法已经从EDT调用。如果您只是想让JButton看起来启用/未启用或从JList添加/删除项目,并且您通过ActionListener在Swing组件上,那么您不必显式调用Swi

java - EventQueue.invokeLater 与 SwingUtilities.invokeLater

有人可以强调这两者之间的区别以及两者都是必需的实例吗?!我有一个可以互换使用的应用程序,但想知道一个是否比另一个更好。显然它们都接受Runnableobject,所以对我来说-我想我可以使用我喜欢的那个。为什么这两个相似的函数在不同的类中?我知道一个在awt中,另一个在Swing中,但他们不是做同样的事情吗? 最佳答案 SwingUtilities.invokeLater之所以存在,是因为EventQueue.invokelater是在1.2中引入的,但Swing可用于1.1。JRE中的Swing一直只调用EventQueue版本。

java - SwingUtilities.invokeLater 需要一个 Runnable 并在 EDT 上运行它?

我对SwingUtilities.invokeLater的签名感到困惑。它需要一个Runnable对象。是这个Runnable对象交给了EventDispatchThread吗?为什么我不能在EDT的run方法上直接调用createAndShowGUI(如果可能的话)?我有readarticles关于如何EDT和invokeLater工作,但我对传递的Runnable对象感到困惑。SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createAndShowGUI();}});如果我在调用之后再次调用SwingUtiliti

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

android - Crashlytics Android Studio 无法运行 : NoClassDefFoundError: javax/swing/SwingUtilities

我正在使用androidstudio0.5.4。我尝试安装crashlytics插件。我已经下载并获得了CrashlyticsAndroidStudioPlugin.zip。我已经安装了settings>Plugins>Installpluginformdisk>“OK”。工具栏上出现了crashlytics按钮。但是当我选择myAndroidProject然后单击“红色crashlytics按钮”时,我收到了这些错误消息:[596982]ERROR-llij.ide.plugins.PluginManager-javax/swing/SwingUtilitiesjava.lang.N

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 - SwingUtilities 中的 invokeAndWait 方法

请解释SwingUtilities中的invokeAndWait()方法。我无法理解这一点。解释的很清楚。如果你用一个例子来尝试会很有帮助。编辑添加@noob的问题扩展:this有什么不清楚的地方|?这是一个修改后的用法示例:importjavax.swing.SwingUtilities;publicclassInvokeAndWaitStuff{publicstaticvoidmain(String[]args){finalRunnabledoHelloWorld=newRunnable(){publicvoidrun(){System.out.println("HelloWorl

java - SwingUtilities 中的 invokeAndWait 方法

请解释SwingUtilities中的invokeAndWait()方法。我无法理解这一点。解释的很清楚。如果你用一个例子来尝试会很有帮助。编辑添加@noob的问题扩展:this有什么不清楚的地方|?这是一个修改后的用法示例:importjavax.swing.SwingUtilities;publicclassInvokeAndWaitStuff{publicstaticvoidmain(String[]args){finalRunnabledoHelloWorld=newRunnable(){publicvoidrun(){System.out.println("HelloWorl