草庐IT

SwingUtilities2

全部标签

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

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

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

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

java - SwingUtilities.invokeLater

我的问题与SwingUtilities.invokeLater有关。我应该什么时候使用它?每次需要更新GUI组件时都必须使用吗?它究竟是做什么的?是否有替代方案,因为它听起来不直观并且添加了看似不必要的代码? 最佳答案 DoIhavetouseeachtimeIneedtoupdatetheGUIcomponents?不,如果您已经在事件调度线程(EDT)上,则不会,这在响应用户发起的事件(例如点击和选择)时总是如此。(actionPerformed方法等总是由EDT调用。)如果您不是在EDT上但是想要进行GUI更新(如果您想从某个

java - SwingUtilities.invokeLater

我的问题与SwingUtilities.invokeLater有关。我应该什么时候使用它?每次需要更新GUI组件时都必须使用吗?它究竟是做什么的?是否有替代方案,因为它听起来不直观并且添加了看似不必要的代码? 最佳答案 DoIhavetouseeachtimeIneedtoupdatetheGUIcomponents?不,如果您已经在事件调度线程(EDT)上,则不会,这在响应用户发起的事件(例如点击和选择)时总是如此。(actionPerformed方法等总是由EDT调用。)如果您不是在EDT上但是想要进行GUI更新(如果您想从某个

java - 什么是 SwingUtilities.invokeLater

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatdoesSwingUtilities.invokeLaterdo?SwingUtilities.invokeLater这段代码我已经看过几百遍了:publicstaticvoidmain(String[]args){javax.swing.SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createAndShowGUI();}});}现在我的问题是:invokeLater()做了什么?如果我只是在主线程中创建和显示我的GUI,会发生什么

Java 外观 - 如何打破对 sun.swing.SwingUtilities2 的依赖

我正在维护一些代码,以在Java中实现自定义外观。在最近升级Java版本时(出于其他原因),我发现由于在sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET;这是一个紧密基于BasicMenuItemUI.layoutMenuItem()大约Java6u02(here'sthesource)的类。我发现Oracle重构了他们的代码以在我使用的新目标版本Java6u31中包含一个MenuItemLayoutHelper。我可以只使用MenuItemLayoutHelper但这并没有解决问题,它只是将它推迟到下一次Java内部结

java - android中的类似功能SwingUtilities.invokeLater?

有时我觉得使用AsyncTask对任务来说太过分了,我正在寻找类似的功能,如Android中的SwingUtilities.invokeLater。因为我只想执行一行代码,没有必要为此创建一个新类。 最佳答案 也许你正在寻找:Activity.runOnUiThread(Runnableaction) 关于java-android中的类似功能SwingUtilities.invokeLater?,我们在StackOverflow上找到一个类似的问题: http

java - 为什么在 main 方法中使用 SwingUtilities.invokeLater?

经过多年的Java编程,我总是习惯于创建我的main()方法,如下所示:publicstaticvoidmain(String[]args){runProgram();}但最近我从网上研究了一些代码,有时看到这个而不是上面通常使用的main():publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){runProgram();}});}我只是想知道:为什么要使用这个而不是通常的main()方式?我试一试看不出有什么不同。这两种方式有什么区别?感谢您阅读我和您的

java - SwingUtilities.invokeLater 做什么?

这个问题在这里已经有了答案:SwingUtilities.invokeLater()whyisitneeded?(7个回答)关闭7年前。SwingUtilities.invokeLater有什么作用?它只是延迟其run方法中的代码块的执行吗?在invokeLater函数中调用一个Action或在我们想要执行的线程结束时简单地调用它有什么区别?任何人都可以帮助我了解invokeLater函数的真正作用吗? 最佳答案 正如其他答案所说,它在AWT事件调度线程上执行您的Runnable。但是你为什么要这样做呢?因为Swing数据结构不是线

java - SwingUtilities.invokeLater() 与 EventQueue.invokeLater()

EventQueue.invokeLater()和SwingUtilities.invokeLater()有什么不同吗?或者是后者只是为了设计而建立在前者之上(没有修改)? 最佳答案 没有没有区别。SwingUtilities类被构建为将swing中使用的所有通用实用方法组合在一个类中。在内部SwingUtilities.invokeLater()调用EventQueue.invokeLater()1197publicstaticvoidinvokeLater(RunnabledoRun){1198EventQueue.invoke