首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JMenuItems获得JMenuBar

从JMenuItems获得JMenuBar
EN

Stack Overflow用户
提问于 2014-07-20 12:20:23
回答 3查看 1.6K关注 0票数 1

我正在尝试从接收作为参数的JMenuItems的类中检索JMenuBar中的JFrame。我已经做了一些阅读,我想我理解JMenuBar包含JMenu,但是那些不直接包含JMenuItems,对吗?

我到目前为止所拥有的(显然,它不起作用!)

JFrame mainWindow; ..。 Component[]菜单= mainWindow.getJMenuBar().getComponents();

那么,我如何才能获得,最好的话,一个数组的所有的JMenuItems我的JFrame?然后,我将简单地使他们一个接一个之后。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-20 12:30:58

是的,你也可以买到JMenu和JMenuItem。

使用JMenuBar#getMenu()JMenu#getMenuComponent()方法获得所需的输出。

示例程序:

代码语言:javascript
复制
JMenuBar menubar1 = getJMenuBar();
for (int i = 0; i < menubar1.getMenuCount(); i++) {
    JMenu menu1 = menubar1.getMenu(i);
    System.out.println("Menu:" + menu1.getText());
    for (int j = 0; j < menu1.getMenuComponentCount(); j++) {
        java.awt.Component comp = menu1.getMenuComponent(j);
        if (comp instanceof JMenuItem) {
            JMenuItem menuItem1 = (JMenuItem) comp;
            System.out.println("MenuItem:" + menuItem1.getText());
        }
    }
}
票数 5
EN

Stack Overflow用户

发布于 2014-07-20 12:27:34

JMenu类有它的API将显示的方法,这些方法允许您轻松地获得JMenuItems:getItemCount()getItem(int pos)。同时也有getMenuElements()

票数 2
EN

Stack Overflow用户

发布于 2014-07-20 13:33:00

谢谢一堆人!这结果非常有效,比预期的要容易得多:)

for (int i = 0; i < mainWindow.getJMenuBar().getMenuCount(); i++) { for (int j = 0; j < mainWindow.getJMenuBar().getMenu(i).getItemCount(); j ++) { if (mainWindow.getJMenuBar().getMenu(i).getItem(j) != null) { mainWindow.getJMenuBar().getMenu(i).getItem(j).setEnabled(true); } } }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24850424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档