【问题标题】:Iterate over HashMap to add JMenuItem(s) to JMenu(s)遍历 HashMap 以将 JMenuItem(s) 添加到 JMenu(s)
【发布时间】:2017-05-14 23:40:41
【问题描述】:

我需要将相同的 JMenuItems 添加到两个不同的 JMenu,但我的代码无法正常工作。

    private void addToMenu(JMenu m, JMenu m2) {
        for (Entry<Integer, JMenuItem> item : items.getJMenuItems().entrySet()) {
            JMenuItem i = item.getValue();
            m.add(i);
            m2.add(i);
            item.getValue().addActionListener(new ChangeColorOnClick(ground.getColorByValue(item.getKey()), textArea));
        }
问题是 JMenuItems 仅添加到 m2 菜单,就像第二个菜单从 m 中添加项目一样,因为 m 是空的。我该如何处理?

【问题讨论】:

    标签: java swing hashmap jmenu jmenuitem


    【解决方案1】:

    据我所知,一个组件只能有一个父级。这就是为什么你只能在第二个菜单上看到它...... 所以你要做的是创建单独的菜单项,重复使用相同的动作对象。

    祝你好运。

    【讨论】:

      【解决方案2】:

      我发现有用的解决方案是创建一个新对象,其中包含 JMenuItem(s) 的集合,每个 JMenu 我需要填充项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-13
        • 2015-12-25
        相关资源
        最近更新 更多