2017-04-05 19 views
0

私は小さなアプリをやろうとしていますが、特定のボタンを押すとJTextFieldからデータを取る必要があります。問題は、私がボタンを押すと何も起こらないということです。私はprintln("yes")とそれをs working printing "yes' on ActionListener`でテストしました。私は何をすべきか ?ここでJText .getText()は何も返しません。

は、コードの一部です:私はあなたが使用している部品分からないが、私はあなたがコンポーネントの宣言に問題があると思う

label = new Label("Width:"); 
label.setMaximumSize(new Dimension(40, 25)); 
this.add(label); 

textField = new TextField(); 
textField.setPreferredSize(new Dimension(80, 25)); 
textField.setMaximumSize(new Dimension(80, 25)); 
this.add(textField); 

button = new JButton("Submit"); 
button.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 

     System.out.println(textField.getText()); // <- here textField.getText() does not return anything. 
    } 
}); 
this.add(button); 

答えて

2

、それは次のようになります。

textField = new JTextField(); 
label = new JLabel("Width:"); 

ない:

textField = new TextField(); 
label = new Label("Width:"); 

     JTextField() and not TextField() 
//----^--------------------^--------------- 
1

のTextFieldはAWTの一部である

textField = new TextField(); 

このコンストラクタでは、表示する指定のテキストは ""です。

によってgetText()このTextComponentに含まれるテキストを返します。これにより、文字列を取得できます。

JTextFieldのスイングこのコンストラクタによって

textField = new JTextField(); 

の一部であり、表示する最初の文字列がgetText()でヌル

であるあなたがnullになってこのTextComponentに含まれるテキストを返します。

関連する問題