我正在使用 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/