frame schliessen

klatuu82

Mitglied
hi also mein Problem ist folgendes da ich ja mit Konstructoren arbeite und hier noch kein frame erzeuge
ist meine frage wie ich den Button "abbrechen" jetzt dazu bringe den später erzeugten frame zu schliessen.
Java:
public class Newdb extends JPanel {
	
	private JLabel namedb;
	
	private JTextField namedbtxt; 
	
	private JButton abbrechen;
	private JButton speichern;
	
	public Newdb (){
		
		setLayout(new GridLayout(2,2));
		
		namedb = new JLabel ("Bitte neuen Datenbanknamen eingeben");
		
		namedbtxt = new JTextField (20);
		
		add(namedb);
		add(namedbtxt);
		
		
		abbrechen = new JButton("abbrechen");
		speichern = new JButton("Datenbank anlegen");
		
		String closetext = "Abbrechen der Eingabe";// String für den Tooltip
		String savetext = "neue Datenbank anlegen";
		
		speichern.setToolTipText(savetext);
		abbrechen.setToolTipText(closetext);// verbindung von Tooltip mit dem Button
		
		abbrechen.addActionListener(new ActionListener(){
			@Override // <-- Java Anotation zum Überschreiben(Überladen) von Methoden
			public void actionPerformed(ActionEvent e) {
				
	--------->frame.dispose();//was sage ich ihm hier weil einen frame. gibs ja noch nicht
			
			}
		});
		
		
		add(speichern);
		add(abbrechen);
		
	}
		
}


neue Klasse die das Frame erzeugt und den Konstruktor anspricht


		aboutMarcel.addActionListener(new ActionListener(){
			@Override // <-- Java Anotation zum Überschreiben(Überladen) von Methoden
			public void actionPerformed(ActionEvent e) {
			     
  ----------->  JFrame daten = new JFrame("Über KFOM");//zum verbinden des EingabeFenster
			    daten.add(new about());
			    daten.pack();
			    daten.setVisible(true);
			}
		});


und natürlich nur den Frame und nicht das ganze prog also System.exit hilft mir nicht wirklich.

danke
 

jgh

Top Contributor
Du musst halt deinen JFrame deiner ActionListener-Methode bekannt machen!
Also entweder in deiner Newdb-Klasse einen Slot definieren:
private JFrame daten;

und dann steht er dir zum closen zur Verfügung...oder du definierst ihn als Static und kannst über den Klassennamen darauf zugreifen....ODER :) du überlegst dir mal ein viel schöneres Muster ;)
und dann deklarierst du sauber (Bspw. in einem Fenster-Controller) deine Elemente!
 

klatuu82

Mitglied
also nur mit private ist es ja nicht getan weil der Jframe in der newdb klasse ein anderes ist als der frame in meiner menü klasse also kann ich dann auch nicht darauf zugreifen nur weil ich einen "slot" definiere.
 

Momolin

Aktives Mitglied
Hallo,

ich schlage folgendes vor:

Java:
// [...]

public class NewDB extends JPanel {

	// [...]

	private JFrame frame;

	/**
	 * der Konstruktor bekommt als Parameter den JFrame, wo das NewDB Objekt
	 * eingebettet wird
	 * 
	 * @param app
	 */
	public NewDB(JFrame app) {

// [...]	
// hier wird der JFrame in einem Attribut gespeichert
		this.frame = app;
// [...]
		abbrechen.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// der Frame ist nun bekannt
				// sinnvoll ist noch eine Prüfung auf null
				if (NewDB.this.frame != null)
					// diese Schreibweise von frame geht auch, ist gleich zu
					// NewDB.this.frame
					frame.dispose();
			}
		});

		// [..]
	}
}

und in einer Anwendung kann es dann so aussehen:

Java:
public class Main {

	public static void main(String[] args) {
		JFrame app = new JFrame();

		app.add(new NewDB(app));
		app.setVisible(true);
	}

}

Viele Grüße
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Java:
 if (NewDB.this.frame != null)

Wtf, mach doch gleich noch das package vorn dran :-/.

Ich halte das für einen Designfehler. Wenn du alles so regelst, schaffst du viel zu viele Abhängigkeiten. Eine auch unschöne Variante wäre es, den JFrame über getParent() ausfindig zu machen.

Ich nehme mal an du hast schon ein Hauptfenster(JFrame), in dem Falle würde ich eh dafür einen JDialog nehmen und dort alles direkt auf dem Rootpanel initalisieren. Wenn das doch komplexer werden soll, dann würde ich den Abbrechen/Speichern button trotzdem auf dem RootPanel platzieren, da die normalerweise immer Bereit stehen sollten.

Insofern: Überdenke mal dein Konzept wie du es gerade vorhast :-/

MFG

Tomate_Salat
 

klatuu82

Mitglied
Danke an Momolin das hat mir schon sehr geholfen

da ich noch nicht so der Held in JAVA und GUI bin kann ich auch noch nix mit deinem Beitrag anfangen
Tomate also ich weis nicht wie oder was der JDialog ist oder ich ihn benutze
 
T

Tomate_Salat

Gast
Ist vgl. mit JFrame. Du rufst ihn am besten so auf:
Java:
JDialog dialog =  new JDialog(yourMainFrame,true);

Das hat den Effekt: es setzt sich ein Dialogfenster vor deinen Frame und "deaktiviert" deinen Frame zugleich. D.h. wenn du auf den Frame klickst, "Blinkt" dein Dialog und macht dem Benutzer kenntlich: er soll/kann derzeit nur mit dem JDialog arbeiten, solange dieser offen ist. Lässt du das [c]true[/c] einfach weg, kann der Benutzer den Frame auch mit Benutzen. Am besten mal ausprobieren, dann siehste was ich meine

MFG

Tomate_Salat
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
M frame lässt sich nicht schliessen AWT, Swing, JavaFX & SWT 7
Fragerjava Frame inhalt komplett löschen AWT, Swing, JavaFX & SWT 4
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
Kotelettklopfer Frame ändert Farbe nicht AWT, Swing, JavaFX & SWT 12
P Swing Zufallsbilder auf Frame ausgeben AWT, Swing, JavaFX & SWT 1
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
C Swing F5 Taste neu laden auf ganzen Frame AWT, Swing, JavaFX & SWT 9
J Genutzte Methoden in einen Frame einbauen AWT, Swing, JavaFX & SWT 21
H Swing Frame an andere Klassen weitergeben AWT, Swing, JavaFX & SWT 4
olfibits Swing JavaFX-Frame in JDesktopPane darstellen? AWT, Swing, JavaFX & SWT 2
F Swing Frame nach vorne holen AWT, Swing, JavaFX & SWT 2
J Panel auf Frame positionieren AWT, Swing, JavaFX & SWT 9
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
S Tastatur frame nur nur 1 mal öffnen AWT, Swing, JavaFX & SWT 1
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
T Frame öffnet nicht AWT, Swing, JavaFX & SWT 1
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
Z Swing Frame wird geöffnet, aber ist ohne Inhalt AWT, Swing, JavaFX & SWT 0
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
M Internal Frame in den vordergrund AWT, Swing, JavaFX & SWT 4
Tausendsassa Frame öffnet aber zeigt keinen Inhalt... AWT, Swing, JavaFX & SWT 10
Tom299 JavaFX Ähnliche Komponente wie der VB6 Frame? AWT, Swing, JavaFX & SWT 2
L Swing Frame in Thread wird nicht gezeichnet AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
M JavaFX wie kann mann sein frame mit einem Icon fersehen? AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
P Frame friert ein AWT, Swing, JavaFX & SWT 6
Z Frame mit Rechteck! AWT, Swing, JavaFX & SWT 16
Messoras JWindow/Frame durch das man durchklicken kann AWT, Swing, JavaFX & SWT 5
M Swing "Frame.setResizable(false);" verschiebt Content? AWT, Swing, JavaFX & SWT 9
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
J JTable aktuallisieren über anderen Frame AWT, Swing, JavaFX & SWT 6
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
S Quadrat auf Frame zeichnen AWT, Swing, JavaFX & SWT 2
B JFrame immer an gleicher stelle auf anderem Frame AWT, Swing, JavaFX & SWT 5
F JAVA-EDITOR: Panel in Frame aufnehmen AWT, Swing, JavaFX & SWT 3
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
BRoll Frame- Video einbinden machbar? AWT, Swing, JavaFX & SWT 6
Kandum obj_JMenu.addMenuListener - variable Anzahl an JMenus / menulistenern & frame.setTitle() dynamisch AWT, Swing, JavaFX & SWT 7
B Frame always on top nur auf anderem Frame AWT, Swing, JavaFX & SWT 9
S Aufteilung von JPanels in einem Frame AWT, Swing, JavaFX & SWT 13
K Options-Frame integrieren (zum zuschalten und wegschalten wie geht man da ran? AWT, Swing, JavaFX & SWT 7
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
N Swing Endlosschleife blockt Frame AWT, Swing, JavaFX & SWT 11
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
N Swing Frame ungewollt transparent! AWT, Swing, JavaFX & SWT 2
J Kleines Anzeige Problem(nur blanker Frame) AWT, Swing, JavaFX & SWT 22
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
Daniel_L Drop von Dateien auf Frame - welche Drop-Location? AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
C LookAndFeel Frame updated nicht vollständig AWT, Swing, JavaFX & SWT 9
K 3D-Grafik Canvas ist ein eigener Frame?! AWT, Swing, JavaFX & SWT 13
L Jbutton + jcombobox mit vorhandenen frame verknüfen AWT, Swing, JavaFX & SWT 8
J 2 Bereiche im Frame komplett nutzen - Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 3
Z Swing JTextfield auf Frame AWT, Swing, JavaFX & SWT 13
N Swing Frame mit GlassPane und Popup AWT, Swing, JavaFX & SWT 5
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
L Mehre Panels einen Frame zuweisen AWT, Swing, JavaFX & SWT 11
P Frame "always on top" und welche GUI? AWT, Swing, JavaFX & SWT 5
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
J Swing Frame öffnen aus Frame mit JButton AWT, Swing, JavaFX & SWT 2
X Alte Frame-Größe beim wiederholten Aufruf AWT, Swing, JavaFX & SWT 5
M erstes Frame wartet auf die Auswertung eines zweiten AWT, Swing, JavaFX & SWT 8
J Frame-Steuerelement AWT, Swing, JavaFX & SWT 2
L Swing Flackern in Frame bei erstem Klick AWT, Swing, JavaFX & SWT 19
F Hintergrundbild im Frame AWT, Swing, JavaFX & SWT 11
S Zeichnen führt zu transparentem Frame AWT, Swing, JavaFX & SWT 6
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
B Frame im Frame? AWT, Swing, JavaFX & SWT 4
C WindowListener Frame AWT, Swing, JavaFX & SWT 8
P klassenübergreifendes Frame AWT, Swing, JavaFX & SWT 6
B Text soll nich über das Frame hinausgehen AWT, Swing, JavaFX & SWT 5
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
Spin JFrame/ Frame Drag and Drop AWT, Swing, JavaFX & SWT 13
S Swing Panelgröße anpassen wenn Frame maximiert wird AWT, Swing, JavaFX & SWT 2
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
3 Eigenes Frame/Window programmieren AWT, Swing, JavaFX & SWT 2
A Hintergrund von einem Frame ändern AWT, Swing, JavaFX & SWT 3
D Mehrere JTabel in einem Frame positionieren AWT, Swing, JavaFX & SWT 5
M Im Frame wird nur die Menüleiste erstellt und nicht die Tabelle? AWT, Swing, JavaFX & SWT 3
N Swing außerhalb des Hauptframe Komponente/Frame öffnen AWT, Swing, JavaFX & SWT 2
T Mehrere sich bewegende Objekte in einem Frame AWT, Swing, JavaFX & SWT 14
J "Warte Frame" AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben