Swing Frame 1 soll auf Frame 2 warten

Status
Nicht offen für weitere Antworten.

pinerski

Mitglied
Hallo JAVA Freunde,

hier mein Problem:

Ich habe 2 Frames. Im MainFrame habe ich ein Label und ein Button. Mit dem Button öffne ich ein weiteres Frame mit einem Textfield und einem Button.

Wenn ich nun im Frame2 einen Text eingebe und auf den Button klicke, soll das Frame geschlossen werden und der Text im MainFrame erscheinen.

MainFrame.java:

Java:
package post1;

import javax.swing.SwingUtilities;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import java.awt.GridBagConstraints;
import javax.swing.JLabel;
import java.awt.Insets;

public class MainFrame extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JButton jButton = null;

	private JLabel jLabel = null;

	private Frame2 meinFrame2 = null;

	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("Neues Fenster");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (meinFrame2 == null) {
						meinFrame2 = new Frame2();
						meinFrame2.setVisible(true);
						meinFrame2.getEingabe();
						jLabel.setText(meinFrame2.getEingabe());
						meinFrame2.setVisible(false);
						meinFrame2.dispose();
						meinFrame2 = null;
					}
				}
			});
		}
		return jButton;
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				MainFrame thisClass = new MainFrame();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	public MainFrame() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("MainFrame");
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
			gridBagConstraints1.gridx = 0;
			gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL;
			gridBagConstraints1.insets = new Insets(5, 5, 5, 5);
			gridBagConstraints1.gridy = 1;
			jLabel = new JLabel();
			jLabel.setText(" ");
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.gridx = 0;
			gridBagConstraints.insets = new Insets(5, 5, 5, 5);
			gridBagConstraints.gridy = 0;
			jContentPane = new JPanel();
			jContentPane.setLayout(new GridBagLayout());
			jContentPane.add(getJButton(), gridBagConstraints);
			jContentPane.add(jLabel, gridBagConstraints1);
		}
		return jContentPane;
	}

}

Frame2:

Java:
package post1;

import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import javax.swing.JTextField;
import java.awt.GridBagConstraints;
import javax.swing.JButton;
import java.awt.Insets;

public class Frame2 extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JTextField jTextField = null;

	private JButton jButton = null;

	private String ausgabeText = "";

	public Frame2() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("Frame2");
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
			gridBagConstraints1.gridx = 0;
			gridBagConstraints1.insets = new Insets(5, 5, 5, 5);
			gridBagConstraints1.anchor = GridBagConstraints.EAST;
			gridBagConstraints1.gridy = 1;
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.fill = GridBagConstraints.BOTH;
			gridBagConstraints.gridy = 0;
			gridBagConstraints.weightx = 1.0;
			gridBagConstraints.insets = new Insets(5, 5, 5, 5);
			gridBagConstraints.gridx = 0;
			jContentPane = new JPanel();
			jContentPane.setLayout(new GridBagLayout());
			jContentPane.add(getJTextField(), gridBagConstraints);
			jContentPane.add(getJButton(), gridBagConstraints1);
		}
		return jContentPane;
	}

	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
		}
		return jTextField;
	}

	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("Ok");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					setEingabe(jTextField.getText());
				}
			});
		}
		return jButton;
	}

	private void setEingabe(String eingabe) {
		ausgabeText = eingabe;
		this.setVisible(false);
	}

	public String getEingabe() {
		return ausgabeText;
	}
}


Der Knackpunkt ist im MainFrame bei actionPerformed müsste bei
jLabel.setText(meinFrame2.getEingabe());
(Zeile 39) die Methode stoppen bis die Eingabe im Frame2 erfolgt ist.

Wenn ich aus dem Frame2 ein Dialog mache und es Modal setze funktioniert es korrekt.

Falls jemand ein ähnliches Problem mal hatte wäre ich für Lösungsansetze dankbar.

Gruß Valentin
 

Verjigorm

Top Contributor
Übergib Frame 2 ein Objekt von Frame 1 und mach sorg dafür, dass Frame 1 eine public Methode zum setzen des Textes hat.

btw: wieso willste keinen Modalen Dialog benutzen?
Dafür sind die doch da
 

pinerski

Mitglied
Bei einem Modalen Dialog kann zwischen den Beiden Fensteren nicht wechseln.

Also du meinst das ich aus Frame2 im MainFrame den Text setzen soll. Das Problem ist nur, dass ich Frame2 auch aus anderen Fenstern öffne, daher müsste Frame2 wissen von wem es geöffnet wurde.

Dachte es gebe eine einfache Möglichkeit ein Vorgang zu stoppen bis ein anderer Vorgang abgeschlossen ist.
 
G

Gast2

Gast
1. Nehm einen JDialog, es ist schlecht 2 Frames zu haben...
2. Adde in Frame1 einen WindowListener auf den Dialog und wenn dieser sich schließt hol dir den Text aus dem Feld (getMethode im Dialog zu Verfügung stellen)
 

pinerski

Mitglied
Danke, das funktioniert schon mal super.

Hatte mich vorher immer gescheut in Foren etwas zu posten. Dachte immer es würde ewig dauern bis man eine Antwort bekommt und diese dann meist auch noch unqualifiziert sind.

Hier wurde ich eines besseren belehrt.

Wenn jemand noch weitere Vorschläge hat, bitte posten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
B Text soll nich über das Frame hinausgehen AWT, Swing, JavaFX & SWT 5
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
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
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
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
K Swing JDialog aus Frame ausrufen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben