Klassen Zugriff auf Fenster aus versch. Klassen

Freddy_K

Mitglied
Hallo,

ich versuche gerade mich in Java einzuarbeiten und stehe vor einem Problem.

Ich habe meine Hauptklasse

Java:
import javax.swing.JFrame;

public class HalloWelt {

	public static void main(String[] args) {
				
		//Fenster Hauptfenster öffnen
		Hauptfenster hauptfenster = new Hauptfenster("HalloWelt");

		//Fenster anzeigen
		hauptfenster.setSize(800,600);
		hauptfenster.setExtendedState(JFrame.MAXIMIZED_BOTH);
		hauptfenster.setVisible(true);
	}
}

und meine Fensterklasse

Java:
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.WindowConstants;


public class Hauptfenster extends JFrame{
	//Konstruktor
	Hauptfenster(String titel) {
		//Titel setzen
		super(titel);
		
		//Layoutmanager festlegen
		setLayout(new FlowLayout());
		
		//Menuleiste
		JMenuBar menuleiste = new JMenuBar();
		
		//Menus erzeugen
		JMenu mnuDatei = new JMenu("Datei");
		JMenuItem itmDateiSchließen = new JMenuItem("Programm beenden");
		
		//Menüs aufnehmen
		menuleiste.add(mnuDatei);
		
		//Menu ins Fenster hinzufügen
		setJMenuBar(menuleiste);
		
		
		//Buttonbar anlegen
		//Buttons definieren
		
		JButton btnTest = new JButton("Test");
		
		//Buttons aufnehmen
		add(btnTest);
				
		btnTest.setEnabled(true);
		
		//Button zu Eventhandler anmelden
		HauptEventListener hauptEventListener = new HauptEventListener();
		btnTest.addActionListener(hauptEventListener);
		
		//Fenster schließen Default
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
}

und zuletzt meinen ActionListener

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

public class HauptEventListener implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent e) {
		Fenster meinFenster = new Fenster("neues Testfenster");
		
		meinFenster.setSize(600, 400);
		meinFenster.setVisible(true);
		hauptfenster.setVisible(false);
	}
}

Dann gibt es noch eine Klasse für das neue Fenster, welches ganz anders aussieht wie das Hauptfenster. Die Klasse selbst sollte aber egal sein.

Zu meinem Problem:
Die ganze Nummer funktioniert bis zu dem Punkt, dass ich im ActionListener nicht auf das erste Fenster zugreifen kann um es unsichtbar zu machen.
Ziel: Altes Fenster unsichtbar machen(oder verkleiner oder irgendwas was mir noch einfällt), zweites Fenster öffnen (nachher wenn zweites Fenster geschlossen wird, altes wiederherstellen). Aber soweit egal.

Nur was muss ich tun, damit der ActionListener nciht nur ein neues Fenster öffnet, sondern auch Zugriff auf das erste Fenster erhält und dort manipulieren kann?

Gruß
Freddy

ps: ich hab den Code etwas eingekürzt, da viele unnötige (sich wiederholende) Sachen drin waren und den Code nur unübersichtlich gemacht hätten. Ich hoffe ich hab jetzt keine wichtigen Sachen versehentlich rausgelöscht.
 

kaoZ

Top Contributor
Beste Option , eigenen Listener schreiben ( ggf. Innere Klasse ), Frame im Konstruktor übergeben

Java:
public class MyFrame {



class FrameListener implements ActionListener{


  private JFrame parent;

  public FrameListener(JFrame parent){
     this.parent = parent;
  }


  @Override
  public void actionPerformed(ActionEvent event){
             // do some stuff 
  }
}
}


mal abgesehen davon kannst du aus einer inneren klasse sowieso auf Attribute einer umschließenden Klasse zugreifen, aus einer Separaten natürlich nicht ;)
 
Zuletzt bearbeitet:

Freddy_K

Mitglied
Oh das ging schnell. Schonmal Danke für die Mühe

Also innere Klasse habe ich überlegt, war mir aber unsicher wo. in der Hauptklasse? Oder in der Fensterklasse?

Frame übergeben.. Ich bin nicht sicher wie genau das mein Problem löst.Ich will ja beim klick auf den Button das fenster verändern. ok das geht mit dem inneren Listener. Aber ich muss auch das Fenster wieder anfassen, sobald das zweite fenster geschlossen wird. Wie komm ich dann vom zweiten fenster an mein erstes?
 

kaoZ

Top Contributor
Aber ich muss auch das Fenster wieder anfassen, sobald das zweite fenster geschlossen wird.

HM ?

wenn du die defaultCloseOperation deiner JFrames auf
Code:
JFrame.DISPOSE_ON_CLOSE;
einstellst, bliebt dein erstes Fenster geöffnet auch
wenn du das 2te schließt.
 
Zuletzt bearbeitet:

Freddy_K

Mitglied
Ja soweit ist das klar. Ich möchte aber ja beim öffnen vom zweiten Fenster das erste verkleinert oder unsichtbar machen. Wenn das zweite wieder geschlossen wird, dann soll das erste wieder maximiert bzw sichtbar werden. Dafür muss ich doch mit dem close Event vom zweiten Fenster auf das erste zugreifen.
 

knilch

Bekanntes Mitglied
Hi,
Ja soweit ist das klar. Ich möchte aber ja beim öffnen vom zweiten Fenster das erste verkleinert oder unsichtbar machen. Wenn das zweite wieder geschlossen wird, dann soll das erste wieder maximiert bzw sichtbar werden. Dafür muss ich doch mit dem close Event vom zweiten Fenster auf das erste zugreifen.
hier mal ein Code der dies machen würde:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Gui1 {
	private JFrame frame;

	public Gui1() {
		initGui();
	}

	private void initGui() {
		frame = new JFrame("Fenster 1");
		frame.setBounds(100, 100, 300, 400);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);        
		frame.getContentPane().setLayout(null);

		JButton nextFrameBtn = new JButton("show next window");
		nextFrameBtn.setBounds(20, 40, 200, 23);
		nextFrameBtn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				new Frame2();
				frame.setVisible(false);
			}
		});
		JButton exitBtn = new JButton("Exit");
		exitBtn.setBounds(20, 80, 200, 23);
		exitBtn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});

		frame.getContentPane().add(nextFrameBtn);
		frame.getContentPane().add(exitBtn);
		frame.setVisible(true);
	}

	private class Frame2 {

		public Frame2() {
			initFrame();
		}


		private void initFrame() {
			final JFrame frame2 = new JFrame("Fenster 2");
			frame2.setBounds(100, 100, 300, 400);
			frame2.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
			frame2.setResizable(false);        
			frame2.getContentPane().setLayout(null);

			JButton nextFrameBtn = new JButton("back to window 1");
			nextFrameBtn.setBounds(20, 40, 200, 23);
			nextFrameBtn.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent arg0) {
					frame2.setVisible(false);
					frame.setVisible(true);
				}
			});


			frame2.getContentPane().add(nextFrameBtn);
			frame2.setVisible(true);

		}

	}
}
und zum testen:
Java:
public class GuiTest {
	public static void main(String[] args) {
		new Gui1();
	}
}
Ich hoffe das hilft....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Zugriff von einem Applet auf ein Fenster Java Basics - Anfänger-Themen 3
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
H Zugriff verweigert Java Basics - Anfänger-Themen 5
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
B Zugriffsmodifier, Zugriff außerhalb Package Java Basics - Anfänger-Themen 5
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
T Java - Zugriff nur mit CLASSPATH ? Java Basics - Anfänger-Themen 7
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
H Datentypen ArrayList in ArrayList: Zugriff Java Basics - Anfänger-Themen 6
J get methoden zugriff und objekt erzeugung Java Basics - Anfänger-Themen 30
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
T Zugriff auf JCheckBox Java Basics - Anfänger-Themen 8
E Netzlaufwerk Zugriff schlägt fehl Java Basics - Anfänger-Themen 11
C Group, Actor und Instanz-Zugriff, LibGDX Java Basics - Anfänger-Themen 4
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
S Vererbung Zugriff auf die Basisklasse einer "zweiten" Erweiterungsklasse Java Basics - Anfänger-Themen 2
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J Sichtbarkeit und Zugriff Java Basics - Anfänger-Themen 9
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
L Zugriff auf zwei Java-Quellcodes Java Basics - Anfänger-Themen 3
A OOP Zugriff auf Objekte von außen Java Basics - Anfänger-Themen 8
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
J JDialog Zugriff auf parent JDialog Java Basics - Anfänger-Themen 5
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
J Erste Schritte Zugriff auf Eigenschaft Java Basics - Anfänger-Themen 2
M MVC - Problem mit Zugriff auf Objekt Java Basics - Anfänger-Themen 4
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
C 5 - Zugriff verweigert Java Basics - Anfänger-Themen 1
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
Z Zugriff auf andere Methoden Java Basics - Anfänger-Themen 12
Z Zugriff auf Pakete Java Basics - Anfänger-Themen 5
G Zugriff zwischen Klassen Java Basics - Anfänger-Themen 15
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
W OOP Zugriff auf mit Objekt erstellte Struktur Java Basics - Anfänger-Themen 7
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
W Typisierte ArrayList und der Zugriff auf den Typ Java Basics - Anfänger-Themen 5
M Zugriff auf Klasse Java Basics - Anfänger-Themen 2
K Zugriff auf C: Java Basics - Anfänger-Themen 5
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
N Zugriff bei Package Struktur Java Basics - Anfänger-Themen 6
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
B Zugriff auf csv-Datei per hashmap Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
T ZUgriff auf 'Werte' Java Basics - Anfänger-Themen 3
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
B Methoden Zugriff auf Variable ermöglichen Java Basics - Anfänger-Themen 3
M Zugriff auf Arraylist Java Basics - Anfänger-Themen 7
D Kein Zugriff auf JFrame Java Basics - Anfänger-Themen 2
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
B Erste Schritte Array-Zugriff Java Basics - Anfänger-Themen 10
D OOP Zugriff auf Objekte A in Klasse A aus Objekt B in Klasse B Java Basics - Anfänger-Themen 3
T Collections Zugriff auf Elemente aus Iterator() Schleife Java Basics - Anfänger-Themen 4
J Threads Zugriff auf Attribute Java Basics - Anfänger-Themen 16
N Kein Zugriff auf Ordner -> NullPointerException Java Basics - Anfänger-Themen 2
I kein zugriff auf jList oder Textfield Java Basics - Anfänger-Themen 2
N Problem bei Zugriff auf Textfelder Java Basics - Anfänger-Themen 6
LittleJavaCup Zugriff auf Klasse von package Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben