Java 重置按钮的方法?

Java 重置按钮的方法?,java,swing,methods,jtogglebutton,Java,Swing,Methods,Jtogglebutton,在我的程序中,我有12个不同的切换按钮,需要同时重置。而不是写作 buttonOne.setText(""); buttonOne.setSelected(false); buttonOne.setEnabled(true); 对于12个不同的切换按钮,是否有方法通过传递参数来实现这一点?我最近才开始使用java,我从来没有使用过不是字符串或int的参数声明,所以我不确定是否有一种方法可以通过切换按钮来实现 您可以将按钮作为参数传递给新方法,并根据该参数调用您的方法 private void

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

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

对于12个不同的切换按钮,是否有方法通过传递参数来实现这一点?我最近才开始使用java,我从来没有使用过不是字符串或int的参数声明,所以我不确定是否有一种方法可以通过切换按钮来实现

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

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

// ...

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

如果要同时触发所有这些按钮,则可以将这些按钮放入列表中,然后执行以下操作:

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

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

private void clearAllFields() {

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

        if (C instanceof JButton) {
            ((JButton) C).setText("");
            ((JButton) C).setEnabled(true);
            ...
        }
    }
}
Witch将循环抛出所有组件,检查它是否是
JButton
的实例,并重置为默认值

这样的好处是,你可以使用很多组件,考虑你想重置JTeXFieldE或者你可以使用的任何组件:

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);
            ....
        }
    }
}

谢谢,但由于某种原因,我得到一个错误,它说这是一个无效的方法声明,并且需要返回类型。你可能知道为什么吗?@quinny你的方法应该使用
JButton
而不是
按钮,并且不返回任何值thing@YCF_LJButton现在给了我“找不到符号”error@quinny您必须使用
JToggleButton
代替
JButton