gpt4 book ai didi

java - 如何在调用 JMenu.addSeparator() 后删除它

转载 作者:行者123 更新时间:2023-11-30 04:02:02 25 4
gpt4 key购买 nike

大家好,

我只是想问一下JMenu.addSeparator()在调用后是否可以删除?例如,在我的表单中,有一个菜单栏,菜单栏中有三个 JmenuItems,每个项目都有 JMenu.addSeparator()。我想要做的是,如果不同的用户登录,我想要 setVisible(false) JMenuItem 之一,因为该特定用户未授权使用该 JMenuItem。问题是当我setVisible(false)其中一个JMenuItem时,JMenu.addSeparator()仍然存在,这看起来有点尴尬,因为有两个 JMenu.addSeparator() 中间不存在 JMenuItem。希望你能帮助我解决这个问题。提前致谢

最佳答案

您有两种可能的解决方案...

你可以...

删除菜单内容并根据用户可以执行的操作重新构建...

menu.removeAll();
// Add menu items back in...
// Personally, I'd have some method that could return back all
// the JMenuItems that could appear on this menu based on the
// the user...

这将是我首选的解决方案...

你可以...

根据当前用户实际可以执行的操作隐藏/显示菜单项,然后删除所有相邻出现的 JSeparator,例如...

Component last = null;
for (Component comp : menu.getComponents()) {
if (comp instanceof JSeparator && last instanceof JSeparator) {
menu.remove(comp);
} else {
last = comp;
}
}

就我个人而言,我知道我更喜欢哪个,并且通常会产生一致的结果......

关于java - 如何在调用 JMenu.addSeparator() 后删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21743599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com