在我的程序中,我有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