迭代 HashMap 以将 JMenuItem(s) 添加到 JMenu(s)

Iterate over HashMap to add JMenuItem(s) to JMenu(s)

我需要将相同的 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 是空的。我该如何处理?

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

祝你好运。

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