2016-05-27 22 views
-2

JTextfieldにGetTextメソッドがあり、Jtextfieldに記録されている数値を格納する配列があります。ユーザー入力を待っているTextField

JTextField tf1 = new JTextField(); 
frame.add(tf1); 

String tfone = tf1.getText(); 
int one = Integer.parseInt(tfone); 

int[][] array = new int[4][5]; 
array[0][0] = one; 
array[0][1] = otherValues... 

ここでの問題は、このコードがすべて実行されるため、ユーザー入力がJtextFieldに入るのを待つことではありません。ユーザーが何かにログインするまで、どのようにjtextfieldを待機させることができますか?後者にはInteger.Parseintを実行しますか?

私が代わりにJTextField

+1

あなたの問題は、そうでないときにリニアコンソールプログラムであるかのようにコーディングしていることです。代わりに、イベントドリブンGUIであり、どのイベントを応答したいのか、そのイベントにどのように応答するのかを知る必要があります。これを推測するのを避けるために、Swingチュートリアルを読んでみてください。 –

+0

[Swing Info](http://stackoverflow.com/tags/swing/info)には、Swingチュートリアルや他のSwingリソースへのリンクがあります。 –

答えて

1

はコードです:

JTextField tf1 = new JTextField(); 
frame.add(tf1); 

JButton b = new JButton(); 
b.setText("Solve"); 
b.setBounds(30, 140, 110, 30); 

b.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) 
      { 
       String tfone = tf1.getText(); 
       int one = Integer.parseInt(tfone); 

       int[][] array = new int[4][5]; 
       array[0][0] = one; 
       array[0][1] = otherValues... 
      //Here you can complete the rest of functions 

});

frame.add(b); 

ユーザーがボタンを押すと、コードの実行が終了します。

0

私はGUI(グラフィック・ユーザー環境。)で働いているcuzの別の方法でJTextFieldの変更は、ユーザー入力を取得するJOptionPaneを使用することはできませんすることができます。これはモーダルフォームを表示し、ユーザーが検証するまで待機します。ここで

String tfone = JOptionPane.showInputDialog("Please enter a number"); 
// Now test the user input 
if (tfone != null) { 
    int one = Integer.parseInt(tfone); 
} 

は、ボタンを追加してみてくださいし、それがActionListenerだ実行し、入力を入力してボタンを押すと、あなたが欲しいものを行うためのコードをロードすることがドキュメントUser input with JOptionPane

+1

テキストフィールドをOptionPaneで変更できないcuz GUIで作業しています。 – Volazh

+0

JOptionPaneを使用すると、値を書き込むGUIフォームも生成されます。ちょうどそれを最初に試して、私は私の答えを編集しました – tfosra

+1

OptionPaneはGraphics環境を生成しますが、JtextFieldのようにはありません。私はJtextfieldのように正方形が必要です。 optionpane aは私が望む数の正方形を生成できません。 – Volazh

3

です。

+0

非常に適切です。すごい! – Volazh

1

あなたはDocumentListenerを使用することができます。ここでは

JTextField tf1 = new JTextField(); 
tf1.getDocument().addDocumentListener(DocumentListener() 
    { 
     @Override 
     public void changedUpdate(DocumentEvent e) 
     { 
     } 

     @Override 
     public void insertUpdate(DocumentEvent e) 
     { 
      // parse here 
     } 

     @Override 
     public void removeUpdate(DocumentEvent e) 
     { 
      // parse here 
     } 
    }); 
関連する問題