2017-04-20 110 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))); 
    } 
});