重置按钮的方法?

时间:2017-05-22 13:14:21

标签: java swing methods jtogglebutton

在我的程序中,我有12个不同的切换按钮,需要同时重置。而不是写

buttonOne.setText("");
buttonOne.setSelected(false);
buttonOne.setEnabled(true);

一遍又一遍地为12个不同的切换按钮,有没有办法通过传递参数在方法中做到这一点?我最近才开始使用java,并且我从未使用过不是字符串或整数的参数声明,所以我不确定是否有办法通过切换按钮来实现。

3 个答案:

答案 0 :(得分:4)

您可以将按钮作为参数传递给新方法,并在该参数上调用您的方法

private void toggleButton(JToggleButton button) {
    button.setText("");
    button.setSelected(false);
    button.setEnabled(true);
}

// ...

toggleButton(buttonOne);
toggleButton(buttonTwo);
...

答案 1 :(得分:3)

如果您想一次触发所有这些按钮,则可以将这些按钮放在列表中并执行:

for (JButton button : myListOfButtons) {
     button.setText("");
     button.setSelected(false);
     button.setEnabled(true);
}

答案 2 :(得分:3)

如果要重置面板或框架中的所有按钮,可以使用调用此方法:

private void clearAllFields() {

    for (Component C : myPanel.getComponents()) {

        if (C instanceof JButton) {
            ((JButton) C).setText("");
            ((JButton) C).setEnabled(true);
            ...
        }
    }
}

Witch将循环抛出所有组件并检查它是否是JButton的实例并重置为默认值。

这样做的好处是,您可以使用许多组件,考虑您还要重置JTextFields或您可以使用的任何组件:

private void clearAllFields() {

    for (Component C : myPanel.getComponents()) {
        if (C instanceof JButton || C instanceof JTextField) {
            ((JTextField) C).setText("");
            ...
        }

        if (C instanceof JButton) {
            ((JButton) C).setText("");
            ((JButton) C).setEnabled(true);
            ...
        }

        if (C instanceof JRadioButton) {
            ((JRadioButton) C).setSelected(false);
            ...
        }

        if (C instanceof JDateChooser) {
            ((JDateChooser) C).setDate(null);
            ....
        }
    }
}