2009-11-23 64 views
1

我有一个菜单,有几个JCheckBoxMnuItems。我如何确保菜单保持打开状态,直到我完成所有选择(即检查菜单项)并且在点击其中一个菜单项时不关闭?Java菜单问题

回答

2

我宁可不要尝试改变应用程序或菜单树的一部分的正常菜单行为。用户期望菜单项被点击后菜单自动关闭。而且,如果将菜单保持展开状态,那么在完成上次选择后,您会发明什么样的操作来手动关闭它?

如果需要在一个用例中更改多个设置,那么您应该考虑提供一个小对话框,使用该对话框可以应用更改并一次性确认它们。我相信,这与UI的典型行为更加一致。

它declutters菜单栏,你只有一个“设置”菜单项,而不是一打(?)复选框行动:)

+0

感谢您重新发布我的帖子,以便更清楚地表明问题。没有你的帮助,我会做什么? ;) – pimpf0r

+0

啊com'on,我只是没有读你仔细回答。之后我意识到,这是你的忠告,但我不想删除它。从我+1为您的答案:) –

+0

更仔细地阅读*你的*后,我刚刚意识到一个人在回答问题时必须更具说明性。 – pimpf0r

1

我想菜单不应该允许多选。 但是,您可以提供键盘快捷键来设置菜单项,而无需使用菜单。

如果您的标志的设置操作是您的应用程序的中心方面,我倾向于在这里使用对话框。这些都是不需要改变现有控制措施的内部实施的建议,尽管我知道,这将是可能的。

0

我同意,这是更好地与标准的用户界面做到这一点。但是,如果你想补充一点,不要关闭菜单复选框它是非常容易:

JCheckBox checkBox = new JCheckBox("Text"); 
checkBox.setOpaque(false); 
checkBox.setRequestFocusEnabled(false); 
menu.add(checkBox); 

这可能不是每个外观做工和手感和复选框不会在同一个菜单项排队作为JMenuItems的方式,但它似乎是一个合理的开始。