bestimmten Frame anzeigen lassen?

leaRner

Mitglied
n'morgen,
ich suche die Möglichkeit, durch das Klicken auf einen Button ein bestimmtes Frame anzeigen zu lassen. Um es etwas expliziter zu sagen: Ich habe ein Programm, mit welchem man auf mehrere Seiten kommt und ich möchte einen "Startseite"-Knopf einfügen, allerdings weiß ich nicht, wie ich nur dieses Frame anzeigen lassen kann (in dem Falle auch alle anderen schließen bzw.
Code:
setVisible(false);
(da ich weiterhin auf die Seiten zugreifen möchte, ohne das Programm zu schließen)

Ich habe probiert, beim Öffnen eines neuen Frames einfach das vorherige auszublenden:

Java:
	private class Listener1 implements ActionListener
	{
		public void actionPerformed(ActionEvent arg0)
		{
			new Angebote2();
			setVisible(false);
		}
	}

Allerdings komme ich dann mit meinem "Zurück"-Button, welcher in dem Sinne funktioniert, dass das Fenster nicht mehr sichtbar ist, dafür das andere Fenster aber ja nicht mehr sichtbar ist und ich es nicht neu anzeigen lassen kann (weil ich dafür auch keine Methode gefunden habe).

Was wäre hier die beste Lösung bzw. wie kann ich einen bestimmten Frame (wieder) anzeigen lassen? Vielleicht ist es ja auch möglich, sozusagen wieder an den Start des Programms zu gehen oder alle Fenster außer das Startfenster eben anzeigen zu lassen.

Danke schonmal,
leaRner
 

leaRner

Mitglied
Danke erstmal für die Antwort.

Meinst du etwa:

Java:
	private class Listener1 implements ActionListener
	{
		public void actionPerformed(ActionEvent arg0)
		{
			setVisible(false);
			setVisible(true);
		}
	}

Dann wird das Fenster ja erst ausgeblendet, dann wieder eingeblendet. Ist theoretisch ja auch möglich, allerdings weiß ich nicht, wie ich einen Frame "ansprechen" kann (
Code:
nameDesFrames.setVisible(true);
funktioniert nicht)

Das mit den Panels ist zwar schön und gut, da es aber viele Inhalte sind und ich nicht dauerhaft

Java:
panel1.setVisible(true);
panel2.setVisible(false);
panel3.setVisible(false);

(und so weiter halt, ich bräuchte locker 7-8 Panels und das ist mir zu unübersichtlich, da gefallen mir mehrere Frames besser) machen will, wie gesagt lieber Frames.

Lg,
leaRner
 

Gucky

Top Contributor
Du könntest die Panels in einem Array speichern aber da du lieber Frames benutzen möchtest, müsstest du den Frames eine Instanzvariable mitgeben. Der Konstrunktor sähe dann so aus:
Java:
public Frame2(Frame frame1){
this.frame1=frame1;
//+ den ganzen Rest, der in so einen Konstruktor gehört
}

Oben in der Klasse, bei den Klassenweiten Variablen müsstest du dann noch eine Variable Frame frame1; machen. Das ist eine sogenannte Instanzvariable aber noch ohne Wert. Im Konstruktor füllst du diese dann mit einem Wert. (nämlich dem ersten Frame)
Über diese Instanzvariable kannst du dann auf sämtliche, nicht als private oder protected deklarierten Methoden und Variablen zugreifen. So auch auf setVisible(boolean).

Diese Möglichkeit ist zwar schnell aber ein bisschen unschön, da man schnell üdurcheinanderkommt. Besser wäre es, wenn du eine Oberklasse machst, die erst alle Frames unsichtbar erstellt und dann allen Frames die Instanzvariablen der anderen übergibt.
Das darf dann aber nicht über den Konstruktor laufen sondern über die Instanzvariablen innerhalb der Oberklasse. Also in Pseudocode so:
Frame frame1= new Frame1();
Frame frame2 = new Frame2();
Frame usw.

frame1.frame2=frame2;
frame1.frame3=frame3;
usw.

Noch besser wäre es, wenn du jedem Frame aus der Oberklasse ein Array mit den Instanzvariablen übergibst.



Das war jetzt viel auf einmal. Such dir einfach eine Möglichkeit aus (mein Favourit ist die letzte. Das muss aber nicht deiner sein) und dann erkläre ich dir genau, was du da tun muss.


EDIT: Das mit dem Array klappt bei Panels auch.
 
Zuletzt bearbeitet:

leaRner

Mitglied
Also momentan hab ich es eben so, dass ich in der Hauptklasse einen neuen Frame erstelle und über die jeweiligen Frames dann immer wieder einen neuen erstelle. Also in der Hauptklasse z.B. erstelle ich Frame1, in Frame1 erstelle ich Frame2, etc.

Ich weiß nicht, welche Methode mir gefällt, am Besten wäre die ressourcensparendste (falls es denn eine gibt) bzw. die am einfachsten anzuwendende. Aber Methode 2 mit "frame1.frame2 = frame2;" hört sich schonmal gut an, wenn die empfehlenswert ist. Solange es am Ende funktioniert, bin ich glücklich ;o)
 

MrClave

Bekanntes Mitglied
Wieso benutzt du nicht Panels und verwendest das CardLayout ?
Das wäre immer eine einzige Linie Code zum wechseln der Ansicht.

Falls du das CardLayout nicht kennst, solltest du dir das aufjedenfall mal anschauen.
 

Ikaron

Bekanntes Mitglied
Ja, CardLayout wäre hier wirklich sinnvoller. Ansonsten solltest du praktisch jedem Fenster eine ID mitgeben, und diese dann in eine (Array)List schreiben.

Java:
ArrayList<JFrame> listeAllerFrames = new ArrayList<JFrame>();

// Wenn du ein neues Fenster erstellst

listeAllerFrames.add(this);
int id = listeAllerFrames.size() - 1;
// Diese ID musst du irgendwie im Frame abspeichern

// Wenn du jetzt ein Fenster sichtbar setzen willst und alle anderen unsichtbar:

public void setVisible(int id) {

    for(int i = 0; i < listeAllerFrames.size(); i++)
        listeAllerFrames.get(i).setVisible(i == id);
}

So nach dem Prinzip würde ich das lösen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
ms_cikar Den Wert einer Hex. value bestimmten. Java Basics - Anfänger-Themen 8
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
B Umbruch nach bestimmten Wort Java Basics - Anfänger-Themen 5
K Apache POI Excel Letzte Reihe einer bestimmten Spalte Java Basics - Anfänger-Themen 1
CptK Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
I bestimmten Wert eines Arrays Java Basics - Anfänger-Themen 23
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
J Eingabe des Scanners an einer bestimmten Position Java Basics - Anfänger-Themen 6
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
K alle Vorkommen einer bestimmten Ziffer in einer Zahl zählen Java Basics - Anfänger-Themen 2
Hijo2006 Ansprechen einer bestimmten Excelzelle Java Basics - Anfänger-Themen 2
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
R Ab einer bestimmten Zeile lesen Java Basics - Anfänger-Themen 3
L Subklasse von ArrayList nur mit bestimmten Objekten füllen Java Basics - Anfänger-Themen 1
J Bestimmten Bildbereich anklicken Java Basics - Anfänger-Themen 0
G Bis zu einem bestimmten Punkt aus Datei lesen Java Basics - Anfänger-Themen 2
L Herunterladbares Java Programm in bestimmten Ordner speicher Java Basics - Anfänger-Themen 3
S OOP Frage: Methoden nur bei bestimmten Gegebenheiten aufrufbar machen? Java Basics - Anfänger-Themen 4
D Bestimmten Wert aus Array List ausgeben Java Basics - Anfänger-Themen 7
AssELAss Zusammengesetzer String, nur bestimmten Wert daraus mit führenden Nullen Java Basics - Anfänger-Themen 2
G Bestimmten String aus gegebenem String speichern Java Basics - Anfänger-Themen 3
B Zufallsdatum innerhalb eines bestimmten Bereiches erzeugen Java Basics - Anfänger-Themen 3
I Texte an bestimmten Stellen ausgeben. Java Basics - Anfänger-Themen 3
M Alle Sublisten einer bestimmten Laenge berechnen Java Basics - Anfänger-Themen 2
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
R Bei einem Bestimmten wert einen text Ausgeben Java Basics - Anfänger-Themen 6
Todesbote Map<String, Treeset> aus Treeset bestimmten Wert auslesen Java Basics - Anfänger-Themen 4
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
G Auf einen bestimmten Konstruktor in der abstrakten Superklasse zugreifen? Java Basics - Anfänger-Themen 2
G Erste Schritte Nach bestimmten Dateien suchen und dann in die Registry schreiben. Java Basics - Anfänger-Themen 6
B String in in bestimmten abschnitten splitten Java Basics - Anfänger-Themen 2
B Strings nur aus bestimmten Zeichen? Java Basics - Anfänger-Themen 4
S Langtext auf bestimmten Bereich begrenzen Java Basics - Anfänger-Themen 3
M bestimmten Teil eines Strings entfernen Java Basics - Anfänger-Themen 4
algebraiker Nur Klassen aus einem bestimmten Jar laden Java Basics - Anfänger-Themen 16
K Bestimmten String zerlegen Java Basics - Anfänger-Themen 12
M Threads bestimmten Kernen zuweisen? Java Basics - Anfänger-Themen 7
A Methoden ArrayList einen bestimmten Wert erhöhen oder herabsetzen. Java Basics - Anfänger-Themen 7
K Klassen Objekt mit einem Namen von einer bestimmten Klasse instanziieren Java Basics - Anfänger-Themen 10
N Dateien bestimmten Typs löschen Java Basics - Anfänger-Themen 6
M Liste nach bestimmten Kriterien ordnen Java Basics - Anfänger-Themen 9
M Input/Output Namen der Files aus einem Ordner MIT bestimmten Encoding auslesen? Java Basics - Anfänger-Themen 3
K größter gemeinsamer Teiler berrechnen, funktioniert nur bei bestimmten Zahlen Java Basics - Anfänger-Themen 2
C bestimmten Teil von string removen Java Basics - Anfänger-Themen 4
D Importieren von bestimmten Quellen Java Basics - Anfänger-Themen 13
M in methode variable eines bestimmten objekts verwenden Java Basics - Anfänger-Themen 2
C String ab einem bestimmten Char abschneiden??? Java Basics - Anfänger-Themen 7
M String an bestimmten Stellen zerlegen Java Basics - Anfänger-Themen 12
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
B Methode nur in bestimmten Zeitintervallen ausführen Java Basics - Anfänger-Themen 3
C Mit LineRead bis zu einem bestimmten Zeichen auslesen Java Basics - Anfänger-Themen 2
K Datentypen Bestimmten Part aus String kopieren mit RegEx Java Basics - Anfänger-Themen 4
I (JFileChooser)Wie kann eine Jar auf Dateien eines bestimmten Ordners zugreifen? Java Basics - Anfänger-Themen 9
M Zufallszahlen aus einem bestimmten Intervall Java Basics - Anfänger-Themen 5
H Programm zu bestimmten Zeit ausführen Java Basics - Anfänger-Themen 3
D An bestimmten Knoten einer Liste zugreifen Java Basics - Anfänger-Themen 4
A String nach bestimmten kriterien splitten Java Basics - Anfänger-Themen 13
Z Geburtstag aller Angestellten am bestimmten Datum Java Basics - Anfänger-Themen 59
S HashMap: Rückgabe des key zu bestimmten value Java Basics - Anfänger-Themen 3
Screen Tätigkeiten von bestimmten Wochentagen gesammelt ausgeben Java Basics - Anfänger-Themen 30
JeromeM90 Problem bei einer Ausgabe von einem bestimmten Zeichen Java Basics - Anfänger-Themen 5
P Bestimmten Stringabschnitt selektieren? Java Basics - Anfänger-Themen 2
G Mail versenden, wenn Mikrofon einen bestimmten Pegel erreich Java Basics - Anfänger-Themen 3
G Auslesen einer bestimmten Stelle in einer Textdatei? Java Basics - Anfänger-Themen 2
M String nach einer bestimmten Anzahl von Zeichen trennen Java Basics - Anfänger-Themen 2
W Bestimmten Pfad im BufferedReader Java Basics - Anfänger-Themen 4
S Suche nach einer bestimmten Komponente . Java Basics - Anfänger-Themen 6
G Wert in Zeile an einer bestimmten Stelle ersetzen Java Basics - Anfänger-Themen 2
F Zufallszahl in einem bestimmten Intervall Java Basics - Anfänger-Themen 9
J Anzahl eines bestimmten Zeichens in einem String Java Basics - Anfänger-Themen 8
H Datei mit bestimmten Dateityp Java Basics - Anfänger-Themen 2
B Bestimmten Punkt im KOS ermitteln Java Basics - Anfänger-Themen 14
M Namen der Dateien in einem bestimmten Verzeichnis erhalten Java Basics - Anfänger-Themen 4
N In der Textarea an einer bestimmten Positon weiterschreiben? Java Basics - Anfänger-Themen 6
B bestimmten Wert in Array suchen und ersetzen Java Basics - Anfänger-Themen 3
J Auswerten eines Bestimmten inhalts einer Datei Java Basics - Anfänger-Themen 9
G Rundungsfehler bei bestimmten Rechnungen? Java Basics - Anfänger-Themen 2
P Zu einem bestimmten Zeitpunkt Meldung anzeigen? Java Basics - Anfänger-Themen 3
A Suche bestimmten Swing-Button Java Basics - Anfänger-Themen 2
S String --> Zahlen herausschneiden an bestimmten Positione Java Basics - Anfänger-Themen 3
R Bestimmten Buchstaben im String zählen Java Basics - Anfänger-Themen 9
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
G Problem bei der Darstellung von bestimmten ASCII-Zeichen Java Basics - Anfänger-Themen 4
J Textauslesen, an bestimmten stellen? Java Basics - Anfänger-Themen 20
G Strings ab einem bestimmten Index zurück geben! Java Basics - Anfänger-Themen 3
N Anzahl eines bestimmten Wortes in einer Textdatei Java Basics - Anfänger-Themen 6
Alex_99 Aktion ausführen wenn Frame disposed wurde Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben