2016-05-05 9 views
0

以下、私はString tempの値をStringListに代入して、actionlistenerクラスの外部で作業できるようにしようとしています。私は、変数が最終的に、または効果的に最終的でなければならないというエラーを得る。それは上で働くことができるようにクラスの外にtempの値を取得する方法はありますか?Javaテキストフィールド、リスナークラスの内部からの文字列を転送

String test; 
textField.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
    temp = UserScreen.textField.getText(); 
    UserScreen.messageAppend(temp); 
    test = temp; 
} 
}); 
+0

http://stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-anonymous-class –

答えて

0

actionListenerは、アクションが発生したときにのみ呼び出されるため、関数で宣言した直後にStringテストがnullになります。

文字列テストをクラスのメンバー変数として宣言し、後で再利用することができます。

0

これを実行するには、 String test;をクラス変数として宣言する必要があります。

...別のオプションは、最終的なとしてそれを宣言することになるが、一度YOUTはそれが価値だ変更することはできません宣言したので、それはあなたのコードでは意味がありません

だからオプション1になるための方法ですあなたのケース

関連する問題