JRadioButtonをご覧ください。 addItemListener()
EDIT:changeListenerをクリックごとに複数回起動するので、これを使用することはほとんどありません。 itemListenerは1回のクリックで1回だけ発生します。 See here
EDIT2:これを拡張するだけで、jradioButtonのactionListenerは、すでに選択されていてもユーザーがクリックするたびに発生します。それがあなたが望むものなら、それは迷惑だと思う。私はそれが選択されているか選択解除されていることを通知されたいだけです。
ChangeListenerはすべての種類のイベントに対して起動します。つまり、リスナーは1回のクリックで5つ以上のイベントを受信します。良くない。
選択または選択解除された状態が変更された場合、itemlistenerはのみを発生させます。これは、ユーザーが複数回クリックすることができ、変更されなければ起動しないことを意味します。あなたが方法であるならば、ラジオボタンは、どちらか持っていることを知っているので、それはちょうど良い作品
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
// Your selected code here.
}
else if (e.getStateChange() == ItemEvent.DESELECTED) {
// Your deselected code here.
}
}
:あなたのハンドラメソッドでは、SELECTED
やDESELECTED
状況をチェックif
ブロックを持っており、そこに何でもする必要があります選択されているか選択解除されているだけで、ユーザが何らかの不明な理由でインタフェースを叩いているだけではありません。
はい、通常、ActionListnerが実行されます。誰もがとても一般的なので、ActionListenerを書く方法を知っています。コードは単にボタンのisSelected()メソッドを使用するだけです。 ItemListenerは複数回も発生しますので、ItemEventをチェックしてこのイベントが選択されたかどうかを確認する必要があります。私はより一般的なアプローチに固執します。 – camickr
このようなActionListenerを使用しても、isSelected()はラジオボタンがクリックされるたびにtrueを返します。これは私の最初の問題です。 – cgull
XPでJDK6を使用しても問題なく動作します。 ChangeListenerが状態が変化したことを通知した場合は、状態をよりよく変更するか、大きな問題があります。問題を示すSSCCEを投稿してください。 – camickr