java - Swing Worker - 传递许多参数

标签 java swing

我将许多参数(确切地说是 10 个)传递到扩展 Swing Worker 的类中,所以我想知道是否有某种方法可以创建一个帮助类,使我的代码更加优雅和可读?任务对象属于该类。代码工作正常,但我想知道如果我决定添加更多传递参数,是否可以使其更具可读性和更优化。

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    SortThread task = new SortThread(a, brelem, sort, jButton1, brElemTextField,
            bubbleButton, selectionButton, insertionButton, jLabel3,
            konzola, startTime, stopTime, sekunde, jScrollPane2);
    task.addPropertyChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent e) {
            if ("progress".equals(e.getPropertyName())) {
                jProgressBar1.setValue((Integer) e.getNewValue());
            }
        }
    });
    task.execute();

}        

最佳答案

我无法为这个问题提供一个好的答案,因为我不太清楚你想要做什么。我强烈建议查找有关重构和设计模式的阅读 Material ,因为这些技术的经验将永远帮助您。

至于具体示例:似乎大多数参数都是 UI 控件 - 您可以尝试创建一个包含用户界面对象的对象,然后您可以将其传递到构造函数中代替所有对象。 编辑:您不一定需要为此创建一个自己的类 - a map也是一种可能。

或者,如果您将 SortThread 设置为 inner class ,然后它就可以访问父级的字段,因此您不必将它们传入。

当然,其他经验丰富的人可能会对这个问题有更多的看法,但考虑到这个问题如此广泛,我想无论如何我都会提出几个选择。

关于java - Swing Worker - 传递许多参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733519/

相关文章:

java - 简单的英语经纪人架构模式

java - Windowslicker 无法在 OS X 上运行

java - 使用 Java DocumentListener 的更智能方式

java - 如何创建可点击的文本容器

java - 使用 Multi-Tenancy 对 Grails 域类进行单元测试

java - 运行 20 个 @Test 方法后如何打印平均时间?

java - 使用证书身份验证将 Grails 配置为 POST

java - 如何从 spring 上下文外部将 spring bean 注册到 spring 上下文中?

java - Swing - 使用 UpdateUI 更改面板的内容

java - 像菜单一样在另一个中打开 jFrame 的元素和结构