2013-03-11 79 views
0

我在WindowBuilder for Eclipse中創建了一個Java應用程序。我建立了一個菜單,並在其中一個菜單項上添加了鼠標點擊的事件。爲什麼WindowBuilder事件沒有被調用?

JMenuItem mitemAbout = new JMenuItem("About"); 
    mitemAbout.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      JOptionPane.showInternalMessageDialog(form, "Message", "title", JOptionPane.PLAIN_MESSAGE); 

     } 
    }); 
    mitemHelp.add(mitemAbout); 

我把一個斷點上的JOptionPane行,當我點擊調試模式下的菜單項,它甚至不得到它。 我完全錯過了一步嗎?

回答

1

雖然JMenuItem部件提供addMouseListener方法(從java.awt.Component繼承)MouseEvents僅處理用於MenuElements自己的功能的使用,即,任何外部MouseEvents將沒有任何效果。

對於JMenuItem組件,使用ActionListener而非MouseListener監聽用戶事件:

mitemAbout.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     ...    
} 
}); 

或使用:

mitemAbout.setAction(myAction); 
+0

這工作。謝謝。 – 2013-03-11 21:42:22

相關問題