BeansBinding触ってみた。
https://beansbinding.dev.java.net/
javax.swing.bindingのSwingBindingSupport見ると、JTextComponent・JComboBox・JCheckBox・JList・JTree・JTable・JSliderの対応方法は書いてあるんだけど、JRadioButton(ButtonGroup)はない。
JRadioButtonが一番扱いづらいのに、困るよう。
ところで次のコードを実行すると「test/null」が表示される。
//JRadioButtonの準備 JRadioButton rb = new JRadioButton("test"); rb.setSelected(true); //ButtonGroupの準備 ButtonGroup bg = new ButtonGroup(); bg.add(rb); //JRadioButtonのActionCommand System.out.print(rb.getActionCommand() + "/"); //ButtonGroupで選択されたもののActionCommand System.out.println(bg.getSelection().getActionCommand());
これだと「test/test」が表示される。JRadioButtonにsetActionCommandしたかどうかの違い。
//JRadioButtonの準備 JRadioButton rb = new JRadioButton("test"); rb.setActionCommand("test");//<-- -- -- ここを追加 rb.setSelected(true); //ButtonGroupの準備 ButtonGroup bg = new ButtonGroup(); bg.add(rb); //JRadioButtonのActionCommand System.out.print(rb.getActionCommand() + "/"); //ButtonGroupで選択されたもののActionCommand System.out.println(bg.getSelection().getActionCommand());
この挙動はどうにかならんもんかね。