重複の可能性:
ループ内でボタンが押されるのをどのように待つことができますか?
この質問は以前に尋ねられたと思いますが、私の状況を解決する回答は見つかりませんでした。
私は現在、ユーザーが移動したい駒を保持している正方形の座標を入力できるチェスプログラム(コマンドライン)を持っています。最初はこのように機能します。
boolean success;
do {
success = true;
// take in coordinates;
// perform checks such as not empty square etc;
if (/*problem found*/) {
// print error message;
success = false;
}
}
while (!success);
これは、ループが実行されるたびにプログラムが実行を一時停止してユーザーが座標を入力するのを待つため、コマンドラインで実行する場合に最適です。ただし、ボタンとアクションリスナーを使用してGUIでこれを実装したいと思います。最も便利な解決策は、次のようなものに置き換えられる入力座標セクション以外のコードを変更しないことです。
pause program;
user presses button which sets coordinates;
when button pressed program continues;
perform checks…;
これはどのように行うことができますか?ボタンが押されるのを待つというJavaのメソッドはありますか?この方法では、GUIのペイントなど、プログラムの他の部分が停止しないようにする必要があります。