在JButton

时间:2015-06-24 20:27:29

标签: java jbutton actionlistener mouselistener jmenuitem

我不知道标题是否可以理解。 无论如何,我有一些JMenuItems,为此我设置了mouseListener。

mntmExtractPaleographyFeature.addMouseListener(this);

其中 mntmExtractPaleographyFeature 是JMenuitem,而是实现 MouseListener 的类。

所以我为mouseListener添加了像

这样的方法
@Override
public void mouseReleased(MouseEvent arg0) {
    if(arg0.getSource()==mntmExtractPaleographyFeature) {
        //Code Here
    }

现在我有了这个JButton extractPaleographyB ,它与JMenuItem完全相同。我不想复制/粘贴代码两次(也因为它不是唯一的按钮/ jmenuitem)。我试过

extractPaleographyB.addMouseListener(mntmExtractPaleographyFeature.getMouseListeners()[1]);

但它不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

创建Action并用于菜单项和按钮

教程

中的一段代码
compileGroovy

要创建Action对象,通常要创建AbstractAction的子类,然后实例化它。在子类中,必须实现actionPerformed方法,以便在发生操作事件时作出适当的反应。这是创建和实例化AbstractAction子类的示例:

Action leftAction = new LeftAction(); //LeftAction code is shown later
...
button = new JButton(leftAction)
...
menuItem = new JMenuItem(leftAction);