Ich versuche ein JMenu mit einem MenuListener zu erstellen, um zu beenden, wenn ausgewählt, aber das Programm wird nicht beendet.MenuListener funktioniert nicht
Der Compiler zeigt keine Fehlermeldung an. Nicht sicher, ob es die e.getsource()
nicht funktioniert oder wenn es etwas anderes ist.
Vielen Dank im Voraus.
import java.awt.*;
import javax.swing.*;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
public class entree implements MenuListener{
JFrame frame;
JMenu exit,teach;
entree(){
Font font=new Font("SansSerif",Font.BOLD,22);
JFrame frame=new JFrame();
ImageIcon icon=new ImageIcon("D:\\Capture_aurora.png");
JLabel bg=new JLabel(icon);
JMenuBar mb=new JMenuBar();
JMenu teach=new JMenu("Teach");
JMenu exit =new JMenu("Exit");
teach.setFont(font);exit.setFont(font);exit.addMenuListener(this);teach.addMenuListener(this);
mb.add(teach);mb.add(Box.createHorizontalGlue());mb.add(exit);
JButton button1=new JButton("Start");
button1.setFont(font);
button1.setBounds(870,820,150,45);
frame.setJMenuBar(mb);
frame.add(button1);
frame.add(bg,BorderLayout.CENTER);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
}
public static void main(String[]args) {new entree();}
public void menuSelected(MenuEvent e) {
if(e.getSource()==exit) {
System.exit(0);frame.dispose();}// Code supposed to work here, but the program won't exit
if(e.getSource()==teach) {}
}
public void menuDeselected(MenuEvent e) {
}
public void menuCanceled(MenuEvent e) {
}
}
sollten diese Listener nicht zu MenuItems hinzugefügt werden, anstatt zum Menü selbst? – Stultuske
Ich denke, ich brauche nur ActionListener für MenuItems und es funktioniert gut, ActionListener kann nicht in JMenus implementiert werden, deshalb verwende ich MenuListener. – Spots
nicht. Sie sollten Listener nicht zum Menü, sondern zu den Menüelementen hinzufügen. Das Menü ist nicht das "anklickbare" Element, das Sie möchten, das MenuItem ist – Stultuske