次のコードを実装する適切な方法は何ですか? プレーヤーが選択したいピースに対応するグリッド上のボタンをクリックするのを待つように takeTurn() メソッドを取得したいと考えています。(Button
オブジェクトにはインスタンス変数int col, row
とがありますextend JButton
。)
int selectedCol, selectedRow;
void takeTurn() {
System.out.print(name + "'s turn. ");
// Get player to select a piece
selectedCol = -1;
selectedRow = -1;
while (selectedCol == -1 && selectedRow == -1) {
try {
wait(500);
} catch (InterruptedException e) {
}
}
System.out.println(selectedCol + " " + selectedRow);
}
@Override
public void actionPerformed(ActionEvent e) {
Button b = (Button)e.getSource();
selectedCol = b.col;
selectedRow = b.row;
}
実行すると が得られException in thread "main" java.lang.IllegalMonitorStateException
ます。