我有一个 JPanel,其中有一堆不同的复选框和文本字段,我有一个已禁用的按钮,需要在设置特定配置时启用。
我需要的是在整个 JPanel 上寻找事件的监听器,每当发生任何变化时。
我相信我需要一个动作侦听器,但我找不到任何东西来桥接动作侦听器与 JPanel
JPanel Window = new JPanel();
Window.addActionListener(new ActionListener(){
//Check if configurations is good
}
我想我可以将我的代码多次复制并粘贴到面板中的每个侦听器中,但这对我来说似乎是糟糕的编码实践。
首先@Sage 在他的文章中提到comment a JPanel与其说是一个容器,不如说是一个执行操作的组件。所以你不能附加一个动作监听器 to a JPanel
.
我想我可以将我的代码复制并粘贴到每个
面板中的听众,但这对我来说似乎是不好的编码实践。
你对此完全正确,这根本不是一个好的做法(请参阅干原则)。相反,您可以只定义一个ActionListener
并将其附加到您的JCheckBox
像这样:
final JCheckBox check1 = new JCheckBox("Check1");
final JCheckBox check2 = new JCheckBox("Check2");
final JCheckBox check3 = new JCheckBox("Check3");
final JButton buttonToBeEnabled = new JButton("Submit");
buttonToBeEnabled.setEnabled(false);
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean enable = check1.isSelected() && check3.isSelected();
buttonToBeEnabled.setEnabled(enable);
}
};
check1.addActionListener(actionListener);
check2.addActionListener(actionListener);
check3.addActionListener(actionListener);
这意味着:如果check1
and check3
都选择,则必须启用该按钮,否则必须禁用该按钮。当然,只有您知道应选择哪种复选框组合才能启用该按钮。
看看如何使用按钮、复选框和单选按钮教程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)