java - 使用同一事件执行不同的操作

标签 java events mouselistener

我正在使用 Java 进行 GUI 培训。我使用JMenuBar

JMenuBar menuBar = new JMenuBar();

这里有JMenu

JMenu fileMenu = new JMenu("File");

栏中有两个JMenuItem

JMenuItem creditsItem = new JMenuItem("Credits");
JMenuItem preferenceItem = new JMenuItem("Option");

所以我将所有内容添加到栏和菜单中:

menuBar.add(fileMenu);
fileMenu.add(creditsItem);
fileMenu.add(preferenceItem);

然后我想根据单击的两个 ItemMenu 中的哪一个执行不同的操作,特别是我想打开两个不同的 JDialog

creditsItem.addMouseListener(this);
preferenceItem.addMouseListener(this);

实现MouseListener

class MainFrame extends JFrame implements MouseListener

我必须使用

@Override
    public void mouseReleased(MouseEvent e) {
        System.out.println("Clicked!!");
    }

但问题是识别两个 JMenuItem 中的哪一个已被单击。我曾尝试使用 switch,但如何知道单击了两个中的哪一个是问题。

最佳答案

最好的办法是

@Override
    public void mouseReleased(MouseEvent e) {

        if(e.getSource()==preferenceItem){
        System.out.println("PreferenceItem");
        optionDialog = new OptionDialog();
        }
        if(e.getSource()==printItem){
        System.out.println("PrintItem");
        }

    }

实现 MouseListener 而不是 MenuListener 后

关于java - 使用同一事件执行不同的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22533362/

相关文章:

java - 在Android Module React Native中动态更改应用程序图标以自动关闭应用程序

java - 无法创建 AsynchronousJiraRestClientFactory(依赖性问题)

javascript - 在 JavaScript 中为新添加的元素添加 onclick 事件

java - Java 中 JTree 行上呈现的按钮上的 MouseListener

java - Spring 启动 : Error: no se ha encontrado o cargado la clase principal

javascript - react JS : Differentiate between Click and Click + Shift event

c# - 使用参数调用事件处理程序

Java 检查 MouseReleased 位置是否在两点之间

java - 如何等待 MouseListener 鼠标按下?

java - springdoc-openapi-ui的Gradle依赖关系