2016-10-04 8 views
-3

作成したJButtonにactionListenerを配置しました。ユーザーがボタンをクリックすると、別のクラスが呼び出されるようになります。私は...もっと明確にするため、ここに私のコードは、そのクラスがその機能を完了したかどうかを検出します:ボタンの機能が完了したことを検出しました

Quest.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent iq) { 

     JButton source = (JButton) iq.getSource(); 

      if (point.equals(points.get(0))){ 

     q1 = new Quest1(); //class called up 
     source.setEnabled(false); 

     //This is where my problem lies.... I want to be able to detect when the button's action is finished...than some other action takes place! 
} 
}); 

私を助けてください.....

+0

それは...人が推論せずにdownvote! –

+2

あなたの質問は実際にはあまり正確ではないので、人々は下降します。あなたが何を求めているのか不明確です。ご理解ください:あなたの入力の質についての**フィードバック**としての*すべての* downvoteまたは閉じる要求が表示されるはずです。 – GhostCat

+0

このアクションでボタンに登録されている他のアクションがあるかどうかを検出し、それらのアクションがすべて完了するまで待ちますか? – erickson

答えて

3

あなたはすでにコードを書いています。あなたは余分努力をしない限り、

あなたは、別のメソッドを呼び出す方法をご覧ください(この場合のように:別のオブジェクトを構築するための新しい使用)シーケンスにをのことを行います!

意味:あなたのリスナーのコメントの最後の行には、の後にに達しています。他の方法がすべて発生しました。

の注意すべき唯一のもの:のコンストラクタクエストを作成し、別のスレッドを開始することになる場合には、当然のことながら、物事は異なるだろう。次に、関与するスレッド間で手作業で通信する必要があります。しかし、私は何とかこれがここに当てはまらないと推測しています。

+0

これは正解です...別のスレッドをどこかで回転させない限り、メソッドは次の行で実行されます。 –

+0

まさに!! ....私は別のクラスをどこかで呼び出しています...そして、そのクラスが実行を終了したかどうかを検出したい場合は、別のクラスが実行されます。 –

+0

正確にはどういう意味ですか?あなたは別のスレッドを開始していますか?別のクラスをインスタンス化することは、本質的に別のスレッドでは実行されません。あなたが提供したコードでは、すべてが上から下に向かって実行されます。 –

0

あなただけ呼び出すことはありませんなぜそこに方法?

Quest.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent iq) { 
    JButton source = (JButton) iq.getSource(); 
    if (point.equals(points.get(0))){ 
     q1 = new Quest1(); //class called up 
     source.setEnabled(false); 
    } 
    onButtonActionDone() 
}); 

private void onButtonActionDone() { 
    ... 
} 
+0

私は、ボタンのアクションが完了したかどうかを検出しようとしています! –

+0

ああ、そうです。それを反映するために 'onButtonActionDone()'を移動しました。 –

+0

ブール値を変更してその変更をチェックすることができます –

1

boolean completedtrueに変更してください。

+0

申し訳ありません:もし彼がマルチスレッドをしていなければ、それはまったく役に立たないのです。彼がマルチスレッドをしているときは、はるかに難しいかもしれません。だからいずれにせよ;あなたの答えはそれほど役に立たない。経験則として、1つの文を構成する回答**は決して良い答えを構成しません。 – GhostCat

+0

なぜ彼はイベントで実行する必要があるコードを入れないのですか?私は彼がそれが完了したかどうか、または現在実行されていないかどうかを確認したいと思うと仮定します –

+0

また、これはmulithreadedイベントはGUIスレッド上で実行されます –

関連する問題