例如,选中父复选框将选中所有子复选框(反之亦然,如果取消选中父复选框)。
如果取消选中子复选框,则父复选框中的复选标记将变为一个框。
如果取消选中所有子复选框,则父复选框也将取消选中。
例如,类似这样,但在Java中。
答案 0 :(得分:0)
这不是JCheckBox组件的真正分组,但它模拟分组并且应该向外显示您描述的行为。您可以随时实现自己的分组复选框类,但我怀疑我的方法更有效。
// UI element declarations
JCheckBox cbAsia = new JCheckBox("Asia");
cbAsia.addItemListener(this);
JCheckBox cbChina = new JCheckBox("China");
JCheckBox cbIndia = new JCheckBox("India");
JCheckBox cbJapan = new JCheckBox("Japan");
JCheckBox cbPakistan = new JCheckBox("Pakistan");
JCheckBox cbThailand = new JCheckBox("Thailand");
JCheckBox cbVietnam = new JCheckBox("Vietnam");
// Item state handling loop
public void itemStateChanged(ItemEvent e)
{
Object source = e.getItemSelectable();
if (source == cbAsia)
{
if(e.getStateChange() == ItemEvent.SELECTED)
{
cbChina.setSelected(true);
cbIndia.setSelected(true);
cbJapan.setSelected(true);
cbPakistan.setSelected(true);
cbThailand.setSelected(true);
cbVietnam.setSelected(true);
}
else
cbChina.setSelected(false);
cbIndia.setSelected(false);
cbJapan.setSelected(false);
cbPakistan.setSelected(false);
cbThailand.setSelected(false);
cbVietnam.setSelected(false);
}
}
}