2012-04-07 11 views
0

アクションリスナー内で指定した文字列の値を取得できません。actionListenerの内部から文字列を取得するにはどうすればよいですか?

私は、このアクションリスナーからUserMessageにアクセスしようとしています:

public class UpdateButtonListener implements ActionListener 
{ 

    public void actionPerformed(ActionEvent e) 
    {  
     String UserMessage; 
     UserMessage = MessageTextArea.getText(); 
     System.out.println("This is your message: " + UserMessage); 
    } 
} 

次に、こののactionListenerからアクセス:

private class EncodeButtonListener implements ActionListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     //print Message 
     System.out.println("Your Message: " + UserMessage); 
    } 
} 

彼らは同じパッケージ内の別のクラスです。 必要に応じてフルコードを追加できます。

おかげ

追加情報:私はエンコードやデコードのいずれかのボタンをクリックした時に何が起こるしたいことはある 。 これらのボタンを実行して、更新ボタンのアクションリスナーにアクセスするアクションリスナー。 私は更新ボタンがある理由は、ユーザーが入力したテキストを取得することです。

+0

DecodeButtonListenerのactionPerformedからUpdateButtonListenerのactionPerformedメソッドのプライベートフィールドにアクセスしますか?あなたが変数を2つのクラスの最も外側に宣言しない限り、単にあなたはできません...おそらく私は質問を理解していない、あなたはより良く説明できますか? – aleroot

+0

あなたが必要とするものは、基本的にMessageTextAreaへの参照です。私たちは適切に応答するための構造を見なければならないと思います。 – SelimOber

+0

両方のコードをすべて投稿した場合に役立ちますか? –

答えて

0

私はそれが範囲に問題だと思います。 UserMessageのスコープはactionPerformed内にあります。

actionPerformedの外で "String UserMessage"を宣言し、公開することができます。この場合、アクセスするには "UpdateButtonListener.UserMessage"と記述するか、UserMessageの値を返す関数を作成します。

+0

どのactionListenerですか? –

0

私はこれをおすすめします:単にメソッドを呼び出すためにActionListernsを使用してください!

+0

ありがとう私はあなたに合うように少しでもコードを変更しましたが、まだエリアから更新されたメッセージを受け取っていません。 –

+0

申し訳ありませんが、私は道にいました。私は今あなたが必要とするコードが欲しいと思います。私はすでにあなたに言ったように、リスナーを使って物事を行うのではなく、クラス(モデル)からのメソッドだけを呼び出すべきです。 –

関連する問題