Swing中的动作侦听器和事件源 - java

好的,因此,如果我在GUI元素中添加ActionListener,并且这是我与该ActionListener一起使用的唯一元素,那么我使用以下哪几行(a,b)来获得复选框选中状态?

final JCheckBox checkbox = (JCheckBox)this.buildResult.get("cbDebugTick");
checkbox.addActionListener(new ActionListener() {
    @Override public void actionPerformed(ActionEvent event){               
            boolean bChecked =
            // (a) checkbox.isSelected();
            // (b) ((JCheckBox)event.getSource()).isSelected();
            model.setPrintDebugOn(bChecked);
        }
});

对我来说,如果我将ActionListener对象添加到多个GUI元素,则应该使用(b)。

并且在(b)中,可以盲目地将event.getSource()转换为JCheckBox,因为我是添加动作侦听器的人,还是应该防御编程并进行instanceof检查?

注意:这个问题通常是在事件侦听器的上下文中进行的。以下是kdgregory的一些特长:我忽略了的复选框。

参考方案

在(b)中,为了严格起见,您确实应该检查一下实例,但这并不重要。我认为这两行都很好并且可以接受,尽管(b)将是“更好的代码”

虽然,在动作监听器中通常要做的只是调用为您的复选框定制的另一种方法。所以看起来像这样:

 @Override public void actionPerformed(ActionEvent event) {                                  
    //your treatment would be in this method, where it would be acceptable to use (a)                  
    onCheckBoxActionPerformed(event)
}

Java Swing SearchBox模型 - java

我需要使用Java Swing的搜索框,如果单击任何建议,当输入字母时它将显示来自数据库的建议,它将执行一些操作。如果有可能在Java swing中,请提供源代码提前致谢 java大神给出的解决方案 您可以使用DefaultComboBoxModel,输出将是这样。Try this在此代码中,您将找到countries数组,因此您需要从数据库中获取此数组。

Java swing-事件触发后,我可以在选项卡上更改名称吗? - java

一,代码:tab_textArea_file.addTab(docLabel, null, scrollPane_textArea, null); 因此,情况是我有一个可供用户选择的文件列表。用户单击文件时,将读取文件的内容并将其加载到textArea中。 “ docLabel”(在上面的代码中)是应该更改为所选文件名的字符串,但并非如此。是否可以通过上面的…

Swing-典型桌面应用程序中的并发 - java

这可能是一个广泛的问题,但我想知道单用户桌面应用程序通常在何处使用并发。您如何发现理想情况下(在设计阶段)并发问题?附注:从操作系统理论上来说,并发问题通常发生在无法共享资源(例如打印机)的情况下。不过,我仍然对在编程级别上可能发生的情况感到迷惑。 java大神给出的解决方案 Event Dispatch thread与其他逻辑之间的Swing中可能存在线程…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Swing JButton不会更改onclick的背景颜色 - java

我希望单击该按钮时它永远不会更改背景颜色,默认情况下该颜色将更改为浅蓝色灰色。这是我的代码JButton b = new JButton(); b.setBackground(SystemColor.control); 我希望按钮在单击时不会改变背景颜色。 参考方案 按钮的绘制取决于LAF。您可以执行以下操作之一:定义您自己的UI委托并将其分配给按钮。 缺点…