2016-12-21 3 views
0

が、私はこのようなコードを持って生成し、同じオブジェクトのイベントを処理します。彼らは競争状態を避けるために働いていないと思う。JavaFXのチェックボックスは、それ

オブジェクトのステータス(選択されているかどうか)を変更するイベント(チェックボックス)を使用するとどうなりますか?

私の目標は、makeNotSelected()メソッドを使ったテストで、非選択状態で選択したばかりのチェックボックスを置くことです。私はこのようなコードを使用して解決している

+0

すべてが一つのスレッドだけで発生しているので、競合条件が、ここではありません。あなたが実行する唯一のことは 'chk.setSelected(false)'ですから、 'chk'が既に選択されていない場合にのみ行います。 'makeNotSelected()'のロジックは何ですか?実際に何をしようとしていますか? 2番目のコードブロックではどうなりますか? –

+0

私が間違っていない場合は、チェックするときにチェックボックスの状態を元に戻したいですか? –

+0

@James_D私が選択したときにチェックボックスの状態を変更し、makeNotSelected()によって返された値に基づいて、非選択状態にします。 – famedoro

答えて

0

checkboxFrame1.selectedProperty().addListener(new ChangeListener<Boolean>() { 
    @Override 
    public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { 
     if ((makeNotSelected())&&(checkboxFrame1.isSelected())) { 
       checkboxFrame1.setDisable(true); 
       checkboxFrame1.setSelected(false); 
       checkboxFrame1.setDisable(false); 
     } 
    } 
}); 
関連する問題