Window-Listener funktionieren nicht

Joex

Mitglied
Hallo Leute,
ich bin neu in der großen weiten Welt von Java. Also helft mir bitte etwas unter die Arme.

Ich versuche ein Fenster zu bauen. Links oben in der Ecke habe ich ein paar Einträge, unter anderem Exit. Bis jetzt scheitere ich daran, mit einem Klick auf Exit das Programm zu beenden (geschweige denn über New Game ein neues Fenster öffnen zu lassen, in dem man sein Spielernamen eingeben kann)

Ich wäre euch sehr verbunden, wenn ihr mir ein wenig auf die Sprünge helfen könntet, wenn möglich auch ein wenig detaillierter.

Hier mein Quellcode (welcher euch bestimmt ordentlich Magenstiche verpasst)

Code:
package GUI;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Fenster extends JFrame{
	
	public Fenster(){
		
		super("wubbel");
		JMenuBar menuBar = new JMenuBar();
		menuBar.add(createFileMenu());
		setJMenuBar(menuBar);
      }

                private JMenu createFileMenu(){
		JMenuItem gameMenuItem, optionMenuItem, exitMenuItem ;
		JMenu ret = new JMenu ("Game");
		ret.setMnemonic('G');
		JMenuItem menuItem;
		
		//New Game
		gameMenuItem = new JMenuItem ("New Game", 'n');
		ret.add(gameMenuItem);
		
		//Option
		optionMenuItem = new JMenuItem ("Option", 'o');
		ret.add(optionMenuItem);
		
		//Exit
		exitMenuItem = new JMenuItem ("Exit", 'e');
		ret.add(exitMenuItem);
		
		
		return ret;
		
		exitMenuItem.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	            if(JOptionPane.showConfirmDialog(getRootPane(), "Programm beenden?") == JOptionPane.YES_OPTION)
	                System.exit(0);
	        }});

		
		
	}
	
	
	public static void main (String []args){ new Fenster(); 

		
		Fenster frame = new Fenster();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocation(100, 100);
		frame.setSize(1000,600);
		frame.setVisible(true);
			
	}
}

Vielen Dank im Voraus, ich zähl auf euch.
 
Hi,

es gibt hier auch
Java:
-Tags, dann sieht das Ganze auch schöner aus und man hat Zeilennummern. 

Naja gut, dann halt so:

[code=Java]
		return ret;
		
		exitMenuItem.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	            if(JOptionPane.showConfirmDialog(getRootPane(), "Programm beenden?") == JOptionPane.YES_OPTION)
	                System.exit(0);
	        }});

return ret = beendet die Methode, d.h. der Code danach kann gar nicht mehr erreicht werden. Tausche also die beiden Programmstücke, bzw besser gesagt: packe return ret; ganz ans Ende von
Code:
createFileMenu()
!
 
Danke euch beiden 🙂

Das Fenster fragt jetzt nach dem Klick auf Exit: "Programm beenden" Ja Nein Abbrechen

Nein und Abbrechen ist in meinen Augen aber so ziemlich das gleiche. Wie kann ich es auf Ja und Nein begrenzen?

Vielen Dank nochmal und einen schönen Mittwoch wünsche ich,
 
Probiers so:


Java:
JOptionPane.showConfirmDialog(getRootPane(), "Programm beenden?", "title", JOptionPane.OK_CANCEL_OPTION);

Oder:

Java:
JOptionPane.showConfirmDialog(getRootPane(), "Programm beenden?", "title", JOptionPane.YES_NO_OPTION);

... je nachdem welche Optionen du haben möchtest.
 
Vielen Dank Leute. Es funktioniert.
Ich werde bestimmt auf noch mehr Probleme stoßen, soll ich dann in diesem Thread weiterposten oder einen neuen aufmachen?
 

Zurück
Oben