A
abschiedsstein
Gast
Hi,
Ich habe gestern angefangen eine Swing Application zu schreiben. Als ich einen Menueintrag zum schließen des Programms einbauen wollte, bin ich auf etwas merkwürdiges gestoßen. Bitte werft einen Blick auf den folgenden Quelltext:
Ich habe versucht das Programm mithilfe eines MouseListeners und mit einem EventListener zu beenden. Der auskommentierte Quelltextteil bewirkt, was er soll. Der zurzeit nicht auskommentierte bewirkt jedoch nicht das schließen des Programms, wenn man den Menueintrag anklickt.
Ich frage mich: WARUM?
Vllt kann mir jemand helfen.
Vielen Dank
Ich habe gestern angefangen eine Swing Application zu schreiben. Als ich einen Menueintrag zum schließen des Programms einbauen wollte, bin ich auf etwas merkwürdiges gestoßen. Bitte werft einen Blick auf den folgenden Quelltext:
Java:
import java.awt.EventQueue;
public class MainWindow {
private JFrame frame;
private JMenu mnMain;
private JMenuItem mntmQuit;
private JMenu mnManage;
private JMenuItem mntmAddTable;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainWindow window = new MainWindow();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainWindow() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
mnMain = new JMenu("Main");
menuBar.add(mnMain);
// Here comes the relevant part!
mntmQuit = new JMenuItem("Quit");
mntmQuit.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.exit(0);
}
});
/*
mntmQuit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});*/
mnMain.add(mntmQuit);
mnManage = new JMenu("Tables");
menuBar.add(mnManage);
mntmAddTable = new JMenuItem("Add Table");
mnManage.add(mntmAddTable);
}
public static void close(){
System.exit(0);
}
}
Ich habe versucht das Programm mithilfe eines MouseListeners und mit einem EventListener zu beenden. Der auskommentierte Quelltextteil bewirkt, was er soll. Der zurzeit nicht auskommentierte bewirkt jedoch nicht das schließen des Programms, wenn man den Menueintrag anklickt.
Ich frage mich: WARUM?
Vllt kann mir jemand helfen.
Vielen Dank