我正在使用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了,但是如何知道点击这两个中的哪一个是问题。
答案 0 :(得分:1)
最好的办法是
@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