我有一个包含一些JCheckBoxMnuItems的菜单。如何确保菜单保持打开状态,直到我完成所有选择(即检查菜单项)并且仅在单击其中一个菜单项时不关闭?
答案 0 :(得分:2)
我宁愿不尝试更改应用程序或菜单树的一部分的正常菜单行为。用户希望在单击菜单项后菜单自动关闭。而且,如果你保持菜单扩展,你会发明什么样的行动,以便在你完成最后一次选择后手动关闭它?
如果需要在一个用例中更改多个设置,那么您应该考虑提供一个小对话框,其中使用可以应用更改并立即确认。我相信,这与UI的典型行为更为一致。
它会使菜单栏变得清晰,你只需要一个“设置”菜单项而不是十几个(?)复选框操作:)
答案 1 :(得分:1)
我猜菜单不应该允许多选。 但您可以提供键盘快捷键来设置菜单项而不使用菜单。
如果你的标志的设置操作是你的应用程序的核心方面,我倾向于在这里使用一个对话框。这些都是建议,不需要改变现有控件的内部实现,即使我知道,它可以摆动。
答案 2 :(得分:0)
我同意使用标准用户界面更好。但是,如果您要添加不关闭菜单的复选框,则非常简单:
JCheckBox checkBox = new JCheckBox("Text");
checkBox.setOpaque(false);
checkBox.setRequestFocusEnabled(false);
menu.add(checkBox);
这可能不适用于每个外观和感觉,复选框不会与JMenuItems以相同的方式与菜单项对齐,但它似乎是一个合理的起点。