java - Swing/SwingWorker 初学者的问题

标签 java user-interface swing design-patterns swingworker

我正在尝试用 java 实现 GUI,但我是 swing 的初学者。我想说清楚一点。我读到为了保持 GUI 响应,我应该使用 SwingWorker 类在单独的线程中完成任务。好的到目前为止。 不,我有一个包含大约 15 种远程方法的模型。作为结果,每个方法都返回不同的对象类型。 在我看来,用户按下按钮并调用模型中的适当方法。如果不使用 swingworker,GUI 就会卡住。我的问题是,我是否应该创建 15 个 Swingworker 线程的子类,并根据用户的操作根据需要为每个子类创建一个新实例?我的理解正确吗?有没有标准的方法或者我说的是正确的方法?

谢谢!

最佳答案

看看这个:Simple Background Tasks .

看来您有两个顾虑。首先,关于使用 SwingWorker 时所需的代码量:您确实需要为每个操作创建一个 SwingWorker 的子类,但这并不意味着它们需要在顶部-level,命名类,或在他们自己的文件中。它们可以是匿名类,如文章中所示,因此代码位于 GUI 的事件处理代码中。

其次,关于 SwingWorker 对象的实例化:您不能重复使用 SwingWorker,但由于作业是作为用户 Activity 的结果执行的(例如,单击按钮),您应该不会在每次实例化新对象时遇到任何性能问题。

关于java - Swing/SwingWorker 初学者的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592588/

相关文章:

java - main 方法中的同步块(synchronized block)

python - 删除 tkinter 中的特定小部件

Java JPopupMenu 错误

java - JFrame 不会出现。主要方法不起作用

java - 如何在使用 VAADIN 填充文本字段时启用按钮

java - 如何用java访问bios信息?

java - 同一类中的HQL多对多查询

c++ - 更改 QTreeWidget 的选择

android - 如何根据它覆盖的 ImageView 的颜色更改文本的颜色?

Java JFrame 大小和中心