JCheckBox尺寸和尺寸射击行动

时间:2012-09-11 15:58:34

标签: java swing action jmenu jmenuitem

我遇到了一些从JCheckBox触发操作的问题:

JMenu topMenu = new JMenu("Top Menu");

MyAction action1 = new MyAction("Action1");
MyAction action2 = new MyAction("A2");

JCheckBox checkBox1 = new JCheckBox( action1 );
JCheckBox checkBox2 = new JCheckBox( action2 );

topMenu.add( checkBox1 );
topMenu.add( checkBox2 );

当鼠标悬停在topMenu上时,它会展开并显示标记为“Action1”和“A2”的JCheckBox。 单击复选框或文本切换复选框。

这部分有点难以解释:“A2”右侧有一个区域为空 - 由于“Action1”占用更多空间,因此当悬停在topMenu上时显示的子菜单将是“措施1" 。 “A2”行的宽度相同,但只有复选框和“A2”才会触发操作。

单击“A2”文本右侧没有任何操作。 我怎样才能以最简单的方式解决这个问题?

1 个答案:

答案 0 :(得分:5)

不要将JCheckBox添加到菜单中。而是使用菜单变体:JCheckBoxMenuItemmenu tutorial将解释如何使用这些。

如,

JMenu topMenu = new JMenu("Top Menu");

MyAction action1 = new MyAction("Action1");
MyAction action2 = new MyAction("A2");

JCheckBoxMenuItem checkBox1 = new JCheckBoxMenuItem( action1 );
JCheckBoxMenuItem checkBox2 = new JCheckBoxMenuItem( action2 );

topMenu.add( checkBox1 );
topMenu.add( checkBox2 );