2017-06-08 20 views
1

togglenameが3つのボタン、togglenameがtrueまたはfalseの2つのボタンを選択できます。実際、togglegroupにはasnwers(質問からjavafxで作ったクイズゲームまで)に対応するボタンが含まれています。クリックイベントでは、どのボタンが押されたかを特定し、actionlistener中に対応する値を返します。 (真または偽のために同様のコードである)。これは、答えを選択する場合である `toggleGroupから実際の値を返します。javafx

groupAnswerQ = new ToggleGroup(); 

class MyChooseAnswerButton extends ToggleButton { 
    public MyChooseAnswerButton() { 
     setToggleGroup(groupAnswerQ); 
     setWrapText(true); 
    } 
} 

SanswerButton1 = new MyChooseAnswerButton(); 
SanswerButton2 = new MyChooseAnswerButton(); 
SanswerButton3 = new MyChooseAnswerButton(); 

groupAnswerQ.selectedToggleProperty().addListener(new ChangeListener<Toggle>() { 
    public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) { 
    if (new_toggle != null) { 
       textAnswerQ = (String) groupAnswerQ.getSelectedToggle().getUserData(); 
       System.out.println("textAnswerQ : " + textAnswerQ); 
    } 
    } 
});` 

私のコードは次のようです。私の問題は、new_toggleがnullでなくても、イベントが検出されたときにtextAnswerQが常にnullを返すことです。私はここで間違って何をしていますか?

+1

ここで、UserDataを設定しますか? –

+0

メインクラスの私のコードでは、ボタンをsetUserDataで初期化しています。 – konstantin

+1

MyChooseAnswerButtonクラスを作成する際に問題が生じるのはなぜですか?なぜあなたのコードのボタンを通常の方法で作成しないのですか?この問題がなぜ発生しているのか、良い答えを得るためには、おそらくコードを投稿する必要があります。 – Sedrick

答えて

1

リファレンスhere

はnew_toggleがnullの場合は、チェックしている理由はありますか? new_toggle変数には何が渡されますか?あなたのuserDataに問題がない場合は、groupAnswerq.getSelectedToggle()がnullであるかどうかを確認してみてください。

+0

selectedTogglePropertyに保持されている値が変更されるたびにこのメソッドが呼び出されます。値はnull(トグルが選択されていない) –

関連する問題