2017-04-20 70 views
-1

我有一个用于摆动菜单的lambda表达式。在JMenuItem中启用了java 8 lambda表达式集ActionListener

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);

+1

你试图启用哪一个/禁用? – cubrr

+0

活跃的一个。例如,我点击“红色”。 “绿色”和“蓝色”保持启用状态,“红色”禁用 –

+0

对于活动菜单项是 –

回答

0

变化做lambda表达式超过在menue所有项目的块和循环:

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))); 
    } 
});