1

私は、3つを使用してユーザーから3つの値を取得しJTextField、2つのボタンを使用して、1つはチャート用、もう1つはグラフ用の単純なプログラムを作成しています。

このボタンのいずれかをクリックすると、インターフェイスから取得された値が呼び出し元の関数に返される必要があります。(つまり、コントローラーからビューを呼び出し、ビュー内のユーザーから値を取得し、コントローラーに戻ることを期待しています)このために、textfield1.getText()内部で関数を使用しました:

Button1.addActionListener(new ActionListener() { 
    //Overriding function over here for getting the data
});

イベント。最後にArrayList、ユーザーから取得した値を返します。

ただし、問題は、プログラムが実行を開始するとすぐに、ボタンのクリックを待機するのではなくArrayList、デフォルト値でコントローラーに直接戻ることです。

これに関する簡単なヘルプに感謝します..

私はリスナーにはかなり慣れていないので、それが問題の理由かもしれません..

4

1 に答える 1

3

質問には、問題を実際に特定するためのコードが欠けていますが、呼び出しが

do A
button.addActionListener( new ActionListener(){
  public void actionPerformed( ActionEvent e ){
    do C
  }
} );
do B

ボタンが押されるまでコードの実行を停止します。これは正しくありません。

上記のスニペットでは、 を実行しA、リスナーをボタンにアタッチして、すぐに に進みBます。リスナー コードは、ボタンが押されたときにのみトリガーされます。SoCは、ボタンが押されたときにのみ実行されます。これは の後Bです。

Oracle サイトで利用可能な に関するチュートリアルがありActionListenerます。あなたが主張するようなリスナーの概念に慣れていない場合は、リスナーをアタッチするときに使用するデザイン パターンであるObserver デザイン パターンについて読むことも役立つ場合があります。

于 2012-10-16T18:16:41.623 に答える