当前位置: 首页 > 面试题库 >

Guice在UI线程问题之外创建了Swing组件?

詹斌蔚
2023-03-14
问题内容

我正在将Google Guice作为IOC容器使用Java
Swing应用程序。事情进展顺利。用户界面存在一些问题。当将标准L&F替换为“推入像素”时,由于Guice在UI线程之外创建了Swing组件,因此Substance
L&F应用程序未运行。

有没有办法告诉Guice在UI线程中创建Swing组件?

也许我应该创建自定义提供程序,在SwingUtilities.invokeAndWait(Runnable)创建它们后将返回Swing组件。

我不喜欢在UI线程中运行整个应用程序的想法,但是也许这只是一个完美的解决方案。


问题答案:

IMO不应使用Guice创建组件,而应使用服务来创建组件。注入服务后,应该很容易确保在EDT上创建组件(使用invokeAndWait



 类似资料:
  • 问题内容: 我对android完全陌生,只想知道它是否是在主线程外更新UI的任何可行且可行的方法。仅从我的代码中,我就在下面列出了这些代码;根本不可能。但是, 我只想使用另一个线程来更新UI 。请事先帮助我! 问题答案: 使用activity.runOnUiThread

  • 问题内容: 想不通这一点。使用worker或invokeLater,UI仍然冻结。下载每个文件后,我希望更新JList。但是JList仅在踩踏返回后才更新。 这是代码: 任何示例都会有所帮助。 问题答案: 下载在后台线程文件,只是包装的。 会更可靠。 附录:作为@mre笔记,也可以很容易地报告中期业绩,如图所示这里。

  • 我对这个很陌生,所以也许有什么我错过了,或者只是不知道。

  • 问题内容: 我在网上搜索了可拖动的Swing组件的示例,但发现示例不完整或不起作用。 我需要的是一个 Swing组件 ,可以用鼠标将其 拖动 到另一个组件中。在拖动时,它应该 已经改变 了位置,而不仅仅是“跳转”到目的地。 我将感谢没有非标准API的示例。 谢谢。 问题答案: 我提出了一个简单但可行的解决方案,我自己找到了;) 我该怎么办? 当按下鼠标时,我 在屏幕上* 记录了 光标的 位置以及

  • 目前,我正在尝试使用SwingWorker构建Swing应用程序,以不断更新面板。 我想在这里完成的是从数据库加载数据,每个数据都将作为面板中的图标发布。图标的颜色基于严重程度字段的值。例如: 示例数据在这张图片中,我有12个对象_id A001的数据。doInBackground()方法中的函数将循环12次,并调用publish()函数在面板中显示图标。图标的颜色基于每个对象id的严重性字段的最

  • 当我在两个不同的地方定义数组(具有相同的行)时,我找不到为什么下面的代码不能工作的原因。这是不是好的做法不是我的问题。我只想找到原因。