在我的程序中,我有12个不同的切换按钮,需要同时重置。而不是写
buttonOne.setText("");
buttonOne.setSelected(false);
buttonOne.setEnabled(true);
一遍又一遍地为12个不同的切换按钮,有没有办法通过传递参数在方法中做到这一点?我最近才开始使用java,并且我从未使用过不是字符串或整数的参数声明,所以我不确定是否有办法通过切换按钮来实现。
答案 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);
....
}
}
}