我正在尝试用 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/