それでおしまい。オプションを選択できるButtonGroupを作成する必要があります。または、ユーザーが選択したオプションをクリックした場合は、アイテムの選択を解除し(何も選択されません)、もちろん、イベントをキャプチャして何かを実行します。
7797 次
5 に答える
12
将来、Jeffのリンクが壊れた場合に備えて、次のように説明します。ButtonGroupをサブクラス化して選択できないようにし、ボタンをこのボタングループに追加する必要があります。
public class NoneSelectedButtonGroup extends ButtonGroup {
@Override
public void setSelected(ButtonModel model, boolean selected) {
if (selected) {
super.setSelected(model, selected);
} else {
clearSelection();
}
}
}
于 2013-05-24T09:34:41.640 に答える
5
これは、その方法を正確に示していますhttps://dzone.com/articles/unselect-all-toggle-buttons
于 2011-02-05T01:26:51.520 に答える
1
button.setSelected(false)
選択されていないボタン/チェックボックスで実行すると、奇妙な動作に気づきました。何かの選択を解除したかのように、すべての選択を解除しました。
私はそれをこのように修正しました:
public class NoneSelectedButtonGroup extends ButtonGroup {
@Override
public void setSelected(ButtonModel model, boolean selected) {
if (selected) {
super.setSelected(model, selected);
} else if (getSelection() != model) {
clearSelection();
}
}
}
于 2014-03-06T14:35:18.990 に答える
0
何かをするためにイベントをキャプチャします。以下も行います。
@Override
public void actionPerformed(ActionEvent e) {
((JToggleButton)e.getSource()).setSelected(false);
}
編集: しかし、ButtonGroupは関係していません。
于 2013-06-02T03:20:31.533 に答える
0
Java1.6より前のソリューション
public class NoneSelectedButtonGroup extends ButtonGroup {
private AbstractButton hack;
public NoneSelectedButtonGroup() {
super();
hack = new JButton();
add(hack);
}
@Override
public void setSelected(ButtonModel model, boolean selected) {
super.setSelected(selected ? model : hack.getModel(), true);
}
}
于 2014-03-02T16:20:23.353 に答える