在大幅度縮短我的代碼的兩個語句中,我需要添加一個將JButton的文本添加到StringBuilder的語句。 ActionListener語句存在可以在單擊時禁用JButton(一個很好的美學),但是我想包括如果可能的話,還可以在ActionListener中追加StringBuilder。以下是這段代碼的兩部分。更改ActionListener以追加StringBuilder
theModel.randomLetters();
ActionListener disableButton = new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
if (!(event.getSource() instanceof JButton)) {
return;
}
theModel.currentWord.append((JButton)event.getSource());
((JButton)event.getSource()).setEnabled(false);
}
};
for (int i = 0; i < 16; i++) {
JButton dice = new JButton(theModel.letters.get(i));
dice.addActionListener(disableButton);
boggleGrid.add(dice);
}
當由for循環產生的.addActionListener(disableButton)增加了上述的ActionListener到每個按鈕。然而,
theModel.currentWord.append((JButton)event.getSource());
是什麼,我認爲會適當追加StringBuilder的 「currentWord」 與任何值點擊按鈕保存(因此 「((JButton的)event.getSource())」)。每個說法都沒有錯誤,但我在主類中編寫了單獨的代碼行,以便在單擊任何按鈕時測試StringBuilder是否有任何更改。沒有。
在哪裏以及我需要做些什麼才能正確添加點擊JButton的值到currentWord?
謝謝,完美的作品。 –
@SemicolonCapitalD很高興它可以提供幫助 – MadProgrammer