現在、私は画面にチェックボックスを追加できる問題に直面しており、クリックするとステート間でスワップするが、選択データを使用して処理を行う場合は、それは真か偽かにかかわらず常に元の値を返します。JCheckBoxは常に真・偽を返すが変更しない
私の最初のコードスライスは、isSelected()を使用していました。メソッドを呼び出すことができます。 SVelRandは、私が使用して作成する私のチェックボックスです:
SVelRand = new JCheckBox("Random", true);
SVelRand.setBounds(50, 30, 90, 20);
次にチェックコードは以下の通りです:
boolean sel = SVelRand.isSelected();
if(sel){
System.out.print("Selected");
}else{
System.out.print("Not Selected");
}
私は、これは動作しませんでした見つけたとき、私は私が作成した場所の下の項目リスナーを実装してみましたjcheckboxはまだ初期値のセットを返し続けます。
SVelRand.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
System.out.println(SVelRand.isSelected());
}
});
また、ラベルとJTextFieldをベアリングのあるフレームに追加する前に同じパネルに描画します。そして、レイアウトではなくsetBoundsを使用している理由は、非標準のレイアウトを実現するために、各コンポーネントを正確な場所に追加できるからです。
何か助けていただければ幸いです。あなたは、デフォルトでチェックとして、あなたのチェックボックスのチェックを開始している場合は、あなたのアクションリスナー関数で
おかげにtoggleStateの初期値を変更ヒープ、それは今素晴らしいです。依然として、組み込みのメソッドが機能していなかったが、このメソッドに固執しようとしている理由を私に混乱させました。 – user1690395
なぜフィールドですか?不要な複雑さが増えています。必要な情報を保持しているので、ItemEventオブジェクトに保持されている状態をチェックしてみませんか? 'if(e.getStateChange()== ItemEvent.SELECTED)'がすべて必要です –