私のタイトルはやや不可解ですが、明確なものを思いつくことができませんでした.
まず、参照ポイントを確立するための 2 つのコード スニペットです (タイプミスがないことを願っています)。
で入力Scanner
'''
Scanner sc = new Scanner(System.in);
for (int i=0; i<10; ++ i) {
System.out.print("Please input a value:");
String answer = sc.next();
// do something with this string
}
...
で入力JOptionPane
:
...
for (int i=0; i<10; ++ i) {
String answer = JOptionPane.showInputDialog("Please input a value");
// do something with this string
{
そのため、上記のサンプルでは、一定の回数だけ値を入力するようユーザーに求めています。同じ種類の機能をSwingアプリケーションに実装するにはどうすればよいですか?
(コンテンツ ペインとして) を作成し、このパネルに (プロンプトを使用して) and を追加しJFrame
ても問題はありません。テキスト フィールドに対して、値を取得して処理するメソッドを作成することもできます。文字列処理は長時間実行されるタスクではないため、別のワーカー スレッドが必要になるとは思いません。JPanel
JLabel
JTextField
ActionListener
ActionPerformed
ユーザーに何かを強制することはできないのでjavax.swing.Timer
、タイムリーな応答を確保するために使用する予定です。
私が理解していないのは、ループまたはその他の形式の制御を実装して、ユーザーが値を正確な回数入力する (およびプログラムが取得する) ことを保証する方法です。このようなロジックをイベント駆動型システムに挿入するにはどうすればよいですか?
GUI パーツをセットアップし、そのインスタンスを送信して EDT で呼び出すと、すべての制御を放棄しているように見えます。
最初にテキスト フィールドを にsetEditable
設定して送信し、次に編集を有効にする(そして編集を無効に戻す)false
ループを作成しますか?invokeAndWait
Runnable
ActionPerformed
私を正しい方向に向けてください。