2017-05-01 10 views

答えて

2

このコードを1として、なぜあなたは一般的なアクション機能を作成しないと、あなたはすべてのリスナーからそれを呼び出しますか?

private void listeners() { 

    button1.setOnAction(e->{ 
     doAction(); 
    }); 

    keyboardShortcut.setOnAction(e->{ 
     doAction(); 
    }); 

} 

void doAction() { 
    System.out.println("Some Action"); 
} 
+0

を呼び出すことによってこれを行うことが分かりました。私は、キーボードショートカットからbutton1.fire()を呼び出します。私が複数のdoActions()をしないのは、doActionが多くのコード行のプレースホルダーであり、ショートカットの1行からボタンのアクションコードを参照できれば好ましいことです。 – Peaser

+2

実際には、任意の違い。正直なところ、あなたがアクションをログに記録し、どのようにトリガーされたかを考えたければ、私が提案した解決策が好ましいと思います。 'doAction()'の前にロギング行を追加している場合は、メソッドで最初に "キーボードアクション"と "ボタンアクション"を受け取ります。とにかく、両方のソリューションが有効です。 –

+0

イベントをチェインすると、ループを作成すると奇妙なバグが発生する可能性があります。プロジェクトに取り組んでいる人が複数いる場合は、イベント間の関係が明白でなく、容易に追跡できないため、これが発生する可能性はかなり高いです。 –

0

私はちょうどあなたが、私は私自身の問題への答えを見つけたbutton1.fire();

関連する問題