在我的程序中,我有12个不同的切换按钮,需要同时重置。而不是写重置按钮的方法?
buttonOne.setText("");
buttonOne.setSelected(false);
buttonOne.setEnabled(true);
一遍又一遍地对12个不同的切换按钮,有没有办法在传递参数的方法来做到这一点?我只是最近才开始使用java,而且我从来没有使用过不是字符串或整数的参数声明,所以我不确定是否有办法通过切换按钮来完成。
在我的程序中,我有12个不同的切换按钮,需要同时重置。而不是写重置按钮的方法?
buttonOne.setText("");
buttonOne.setSelected(false);
buttonOne.setEnabled(true);
一遍又一遍地对12个不同的切换按钮,有没有办法在传递参数的方法来做到这一点?我只是最近才开始使用java,而且我从来没有使用过不是字符串或整数的参数声明,所以我不确定是否有办法通过切换按钮来完成。
你可以在通过按钮作为参数,以一种新的方法,如果你想触发一次所有这些按钮,那么你可以把这些按钮在呼吁该参数
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);
...
}
}
}
女巫会循环抛出所有组件并检查它是否为JButton
的实例并重置为默认值。
这样的好事,你可以使用许多组件考虑您还想重置JTextField中或任何组件,您可以只使用:
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
@quinny你的方法应该采取'JButton'而不是'Button'并且不返回任何东西 –
@YCF_L JButton现在给了我“找不到符号”错误 – quinny