java 在 JMenuItem ActionListener 中启用了 8 个 lambda 表达式集

java 8 lambda expressions set enabled in JMenuItem ActionListener

我有一个用于 swing 菜单的 lambda 表达式。

    JMenu color = new JMenu("Color");
    color.add(new JMenuItem("Red")).addActionListener(evt -> panel.setSelectColor(Color.RED));
    color.add(new JMenuItem("Green")).addActionListener(evt -> panel.setSelectColor(Color.green));
    color.add(new JMenuItem("Blue")).addActionListener(evt -> panel.setSelectColor(Color.BLUE));

如何使用 lambda 函数将其设置为启用或禁用。我知道我可以做到 color.setEnabled(true);color.setEnabled(false);

将 lambda 表达式更改为一个块并循环遍历菜单中的所有项目:

color.add(new JMenuItem("Red")).addActionListener(evt -> {
   panel.setSelectColor(Color.RED);
   for(int i = 0 ; i < color.getItemCount(); i++){
    color.getItem(i).setEnabled(!evt.getSource().equals(color.getItem(i)));
   }
});