Per Klick ein Dialogfenster öffnen

Xerxes20

Aktives Mitglied
Hallo,

ich habe ein kleines Problem mit dem Java ActionListener:

Ich bin noch ganz am Anfang des Programms und habe zunächst eine Menüleiste erzeugt mit zwei Elementen und diese haben auch Untermenüs, eine davon heißt Einschreiben.

Wenn man draufklickt soll sich ein Dialogfenster öffnen.

Ich habe alles in Methoden geschreiben, damit es ordentlicher aussieht, nur ist hier das Problem, dass wenn ich einschreiben.addActionListerner(this) verwende, Eclipse meckert! (Cannot use this in static..)

Java:
public static void Menuleiste(){

//Menüleiste erzeugen
menueLeiste= new JMenuBar();

//Element hinzufügen
JMenu student = new JMenu("Student");
menueLeiste.add(student);

//Untermenü
einschreiben= new JMenuItem("Einschreiben");
student.add(einschreiben);


}
 

eRaaaa

Top Contributor
Gibt sicherlich ein paar Lösungswege, z.B. könntest du anstelle von [c]implements ActionListener[/c] eben für den Listener an einschreiben eine anonyme innere Klasse verwenden. Oder du erstellst eben eine extra externe Klasse die ActionListener implementiert.

Ansonsten wäre jetzt auch die Frage was die Klasse genau macht, in der deine Methode [c]Menuleiste[/c] steht (Methoden vorne übrigens NICHT groß schreiben ;D ). Rein theoretisch ginge sicherlich auch anstelle von
Code:
einschreiben.addActionListerner(this)
->
Code:
einschreiben.addActionListerner(new DieKlasseWoSichDieMethodeBefindet());

Führen viele Wege zum Ziel :)
 

Xerxes20

Aktives Mitglied
Ich danke dir hat super funktioniert! :)

Ich hätte noch eine Frage:

Ich möchte ein JDialog per Abbrechen Butten schließen, habe die Funktion auch implementiert, aber irgendwie funktioniert das nicht, was mache ich da falsch?

Hier der Code:

Java:
	public void actionPerformed(ActionEvent object) {


		if (object.getSource() == einschreiben){

			JDialog d=new JDialog(frame, "Einschreiben",true);
			d.setSize(400,400);
			d.setPreferredSize(new java.awt.Dimension(400,400));
			d.setLayout(new FlowLayout(2,80,8));
			d.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

			JButton ab=new JButton("Abbrechen");

			d.add(ab);
			ab.addActionListener(new Hauptmenu());

			d.setVisible(true);

			if (object.getSource()==ab){


				d.dispose();


			}


		}
	}
 
Zuletzt bearbeitet:

firewarrior

Aktives Mitglied
Mehr Code bitte. Auch wenn ich vermute, dass du im if-Zweig 'if (object.getSource() == einschreiben)' niemals zum if-Zweig 'if (object.getSource()==ab)' kommst.
 

firewarrior

Aktives Mitglied
Naja, seh es mal so: Wie soll 'object.getSource()' gleichzeitig 'einschreiben' und 'ab' sein? Denn:
Java:
if (object.getSource()==ab) { d.dispose(); }
steht im If-Block von
Java:
if (object.getSource() == einschreiben) {
 

Xerxes20

Aktives Mitglied
Ich weiß zwar nicht worauf du hinaus willst, aber das "einschreiben" bezieht sich auf eine Menüleiste die ich erstellt habe, wenn man auf "einschreiben" klickt öffnet sich ein Dialogfenster (das in der If-Anweisung) und der Button "Abbrechen" wird erstellt, nur führt er die If-Anweisung nicht aus (die zweite).
 

Xerxes20

Aktives Mitglied
Okay ich habe mal was anderes Probiert, aber das klappt genauso wenig:

Java:
if (object.getSource() == einschreiben){

			JDialog d=new JDialog(frame, "Einschreiben",true);
			d.setSize(400,400);
			d.setPreferredSize(new java.awt.Dimension(400,400));
			d.setLayout(new FlowLayout(2,80,8));
			d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

            JButton ab=new JButton("Abbrechen");
			d.add(ab);
			ab.setActionCommand("Abbrechen");
			
			ab.setMnemonic(KeyEvent.VK_B);
			ab.addActionListener(this);
			d.setVisible(true);
			
			if ("Abbrechen".equals(object.getActionCommand())){
				
				d.setVisible(false);
				d.dispose();
					
			}
}
 

eRaaaa

Top Contributor
.... nicht einfach ausprobieren oder drauf los schreiben. Dir fehlen anscheinend noch Grundlagen bei den Listenern. Ich habe oben drei verschiedene Möglichkeiten aufgezählt, hast du dir diese mal durchgelesen und verstanden?

deine zweite if-Abfrage hat dort überhaupt nichts zu suchen - das klappt so alles nicht.

Java:
		final JDialog d = new JDialog(frame, "Einschreiben", true);
		d.setSize(400, 400);
		d.setPreferredSize(new java.awt.Dimension(400, 400));
		d.setLayout(new FlowLayout(2, 80, 8));
		d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

		JButton ab = new JButton("Abbrechen");
		ab.setMnemonic(KeyEvent.VK_B);
		ab.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					d.dispose();
				}
		});
		d.add(ab);
		d.setVisible(true);


Probier`s mal so. Und lies How to Write an Action Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)
 

eRaaaa

Top Contributor
Diese Aussagen helfen hier niemanden weiter....geht nicht - gibt`s nicht !

Code:
if (object.getSource() == einschreiben){
<-- ist diese Abfrage überhaupt true? Mach mal ein kleines, ausführbares Beispiel welches JEDER nachvollziehen kann, so einzelne Codestücke bringen uns anscheinend nicht weiter.
 

henpara

Bekanntes Mitglied
Wenn, dann muss deine Struktur so, bzw. so ähnlich aussehen:
Java:
if (object.getSource() == einschreiben){
 
            JDialog d=new JDialog(frame, "Einschreiben",true);
            d.setSize(400,400);
            d.setPreferredSize(new java.awt.Dimension(400,400));
            d.setLayout(new FlowLayout(2,80,8));
            d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
 
            JButton ab=new JButton("Abbrechen");
            d.add(ab);
            ab.setActionCommand("Abbrechen");
            
            ab.setMnemonic(KeyEvent.VK_B);
            ab.addActionListener(this);
            d.setVisible(true);
} else if (object.getSource()==ab){
                
                d.setVisible(false); //wobei ich nicht sicher bin, ob er hier das "d" kennt... (evtl. auch umbenennen)
                d.dispose();
                    
}
Weil die source is nunmal nur einmal "einschreiben". während sie "einschreiben ist" kann sie aber niemals ab gleichzeitig sein, das heißt dein inneres If is nie true.

Daher mit else if arbeiten (wie oben) um, wenn die Source ab ist, das Fenster zu schließen.

hoffe das passt so.
 

Xerxes20

Aktives Mitglied
Hallo,

nein es hat auch ohne else if Anweisung funktioniert. Ich habe die Dateien einem anderen Kollegen geschickt, bei dem es komischerweise wunderbar funktioniert hat. Weiß nicht warum, aber es klappt jetzt.

Vielen Dank an alle
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
F Per Klick Klasse ausführen Java Basics - Anfänger-Themen 4
P Auf Button-Klick außerhalb der GUI-Klasse reagieren Java Basics - Anfänger-Themen 10
T Bei Buttonklick Aktion starten, nach erneutem Klick beenden Java Basics - Anfänger-Themen 4
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
G jButton bei Klick String +1 Java Basics - Anfänger-Themen 5
thorr Ereignis bei Klick auf Button Java Basics - Anfänger-Themen 3
C Button einfärben bei Klick Java Basics - Anfänger-Themen 5
0 Nach Klick auf minimieren nur ins Tray Java Basics - Anfänger-Themen 3
JAVAnnik Klick auf Bildschirm Java Basics - Anfänger-Themen 11
JAVAnnik variable erhöhen bei Klick auf JLabel Java Basics - Anfänger-Themen 3
D JOptionPane ohne Klick-Aufforderung Java Basics - Anfänger-Themen 9
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
M slide effekt über page legen per klick(href) Java Basics - Anfänger-Themen 5
J Klick auf Icon eines Labels registrieren. Java Basics - Anfänger-Themen 4
T Per Button Klick Fenster schließen?< Java Basics - Anfänger-Themen 7
R .Jpg anzeigen lassen nach klick in JList Java Basics - Anfänger-Themen 11
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
B klick auf einen Button zählen Java Basics - Anfänger-Themen 3
S Neuladen der Webseite nach Klick im Applet Java Basics - Anfänger-Themen 2
G JFrame bei Klick auf X WIndow nicht schließen Java Basics - Anfänger-Themen 2
R auf button klick befehl ausführen Java Basics - Anfänger-Themen 11
S jList Multiple Selection mit Klick Java Basics - Anfänger-Themen 2
J Klick der ein Javascript ausfuehrt simulieren? Java Basics - Anfänger-Themen 2
C Bild in JTable verändern (nach einem Klick auf Zelle) Java Basics - Anfänger-Themen 4
1 Checkbox nach klick ausblenden Java Basics - Anfänger-Themen 4
G zelle(n) makieren, button klick, Zelle(n) farbig Java Basics - Anfänger-Themen 4
M JTable - DefaultTableModel - neue Row per Button-Klick Java Basics - Anfänger-Themen 2
M jToggleButton Klick abfangen ohne den Button zu deaktivieren Java Basics - Anfänger-Themen 2
P Button deaktivieren bei Klick auf einen anderen Button? Java Basics - Anfänger-Themen 5
Z klick zähler Java Basics - Anfänger-Themen 2
L Button-Klick Java Basics - Anfänger-Themen 9
T Klick auf Button Java Basics - Anfänger-Themen 7
E Farbänderung des Frames bei Klick . Java Basics - Anfänger-Themen 7
S GUI "Klick-Tabellen", MouseOver Effekte und 2D-Arr Java Basics - Anfänger-Themen 11
G Fenster schließen bei Klick auf Button Java Basics - Anfänger-Themen 4
R NullPointerException beim Klick auf Button Java Basics - Anfänger-Themen 3
M Help! ActionEvent bei Button Klick Java Basics - Anfänger-Themen 9
G Aktionen auslösen, nach Klick auf "Blätter" eines Java Basics - Anfänger-Themen 2
F JDialog per Button-Klick schliessen Java Basics - Anfänger-Themen 2
L Bei Klick auf einen Button reagieren - Wahrer Anfänger! Java Basics - Anfänger-Themen 3
N Nach Button klick zeichnen Java Basics - Anfänger-Themen 6
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
I dialogfenster Java Basics - Anfänger-Themen 6
DEvent Dialogfenster in dem man Verzeichnisse auswählen kann Java Basics - Anfänger-Themen 6
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
Files öffnen Java Basics - Anfänger-Themen 17
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
C Projekt öffnen BlueJ Java Basics - Anfänger-Themen 1
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
A Methoden Array aus verschiedenen Methoden bearbeiten bzw. öffnen Java Basics - Anfänger-Themen 18
E Warum kann ich meine jar-Datei nicht öffnen Java Basics - Anfänger-Themen 20
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
T Mehrere JFrames gleichzeitig öffnen Java Basics - Anfänger-Themen 6
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
S Dialogfeld nach 5 Sek automatisch öffnen Java Basics - Anfänger-Themen 15
M Standardbrowser öffnen Java Basics - Anfänger-Themen 6
M Erste Schritte Links öffnen Java Basics - Anfänger-Themen 6
P Kann ich Java - Programme auch ohne Editor öffnen? Java Basics - Anfänger-Themen 70
J Seite öffnen und schließen Java Basics - Anfänger-Themen 2
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
WetWer Custom Datei Endung öffnen Java Basics - Anfänger-Themen 1
N Datei mit Wildcard öffnen Java Basics - Anfänger-Themen 2
F Programm öffnen Java Basics - Anfänger-Themen 2
P JFrame nur einmal öffnen Java Basics - Anfänger-Themen 4
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
Tacofan JAR-Datei öffnen Java Basics - Anfänger-Themen 4
T eclipse runnablejar Datei fehler bei öffnen Java Basics - Anfänger-Themen 0
F Java Programm öffnen Java Basics - Anfänger-Themen 3
T Textdatei öffnen und ans Ende scrollen Java Basics - Anfänger-Themen 11
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Erste Schritte Erstes Programm mit Compiler öffnen Java Basics - Anfänger-Themen 4
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
J Pdf-Dokument im Java-Programm öffnen Java Basics - Anfänger-Themen 3
P Barcodescannen und Datei im Programm öffnen Java Basics - Anfänger-Themen 6
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
N Eclipse Projekt im Terminal (Mac) öffnen.... Java Basics - Anfänger-Themen 4
T CMD mit Java Programm öffnen? Java Basics - Anfänger-Themen 5
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
B Projekt öffnen (Eclipse) Java Basics - Anfänger-Themen 2
A Weitere Konsolenfenster öffnen Java Basics - Anfänger-Themen 3
P Datei extern öffnen Java Basics - Anfänger-Themen 0
T Java Program über CMD öffnen und steuern Java Basics - Anfänger-Themen 1
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben