2012-05-23 77 views
0

在製作一些小應用時,我遇到了一個小問題。我有一個JMenuBar和少數JMenus,其中一些添加了MenuListeners,它們像普通按鈕一樣工作(menuSelected打開一個對話框)。問題是,當我點擊一個'普通'菜單並且JMenuItems列表展開,然後將光標移動到'buttony'菜單上時,MenuListener會認爲它已被點擊並且提供了合適的方法。如何禁用?下面是代碼的某些部分清理自定義名稱的:和禁用JMenu流動

JMenuBar bar = new JMenuBar(); 

addPlayerButton = new JMenu("Button"); 

addPlayerButton.addMenuListener(new MenuListener() { 

    @Override 
    public void menuSelected(MenuEvent e) { 
     addPlayerButton.setSelected(false); 
     //here comes my method to show custom dialog 
    } 

    @Override 
    public void menuDeselected(MenuEvent e) { 
    } 

    @Override 
    public void menuCanceled(MenuEvent e) { 
    } 
}); 

bar.add(addPlayerButton); 

JMenu menu = new JMenu("Menu"); 
bar.add(menu); 

回答

0

我想你可以使用一個ActionListener沒有一個MenuListener,becose當鼠標移動到menuItem.I'm不知道menuSelected呼籲,但嘗試。

+0

我已經試過了,忘了提。不起作用。 – joval

0

也許我用太複雜的方式呈現了它。

想象一下你有一個帶有MenuBar的框架和兩個菜單。你點擊其中一個,它會顯示它的內容。現在您將光標移到第二個菜單上,並在第二個菜單打開時首先關閉。我只是希望在這種情況下不要打開。