Java ContentPanel austauschen?

FrazeColder

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.718
Moin Community,

Ich bin gerade dabei eine GUI in IntelliJ zu programmieren. Allerdings habe ich ein Problem.
Wie kann ich den das ContentPanel austauschen?

Denn das JFrame wird ja in der Main Methode erzeugt und ich kann da ja nicht einfach von einer anderen Methode drauf zugreifen...
Wie kann Ich das dann machen?

Den Ich habe verschiedene Panels die Ich anzeigen muss, allerdings bekomme ich auch im Internet keine Hilfestellung zu meinem Problem...

Mit freundlichen Grüßen und Danke!
 
Keine Ahnung ob man es ersetzen kann, aber verwende doch ein eigenes Content(J)Panel das du dem ContentPane hinzufügst und auch wieder austauschen kannst.
 
Wie wärs Code zu posten? Dazu würde man mitlerweile eher mit JavaFx Gui's basteln.
 
Hier zwei Bilder aus dem Code:

Unbenannt.JPG Unbenannt1.JPG
 
Dein Problem ist also, zugriff auf das JFrame zu bekommen. Der Austausch ist ja einfach.
Zwei Vorschläge:
1. Das JFrame als Singleton implementieren, auf dass dann jeder statisch Zugriff hat.
2. Das JFrame als Parameter GraphicalUI übergeben.
 
FrazeColder schrieb:
Denn das JFrame wird ja in der Main Methode erzeugt und ich kann da ja nicht einfach von einer anderen Methode drauf zugreifen...
Wie kann Ich das dann machen?

Wieso sollte das denn nicht gehen? Gib der Methode beim Aufruf das JFrame mit oder gib der Klasse, in der die Methode steht das JFrame als Instanzenvariable beim Konstruktor-Aufruf mit.

Aber wie bereits erwähnt, setz dich lieber mit JavaFX auseinander als mit JFrame, das ist aktuell das Non Plus Ultra bei der GUI Entwicklung mit java, zumindest bei uns an der Uni wird es durch die Bank durch gehyped
Ergänzung ()

Darlis schrieb:
1. Das JFrame als Singleton implementieren, auf dass dann jeder statisch Zugriff hat.

Statische Programmierung sollte man generell eigentlich eher vermeiden, außer es lässt sich nicht vermeiden...
 
Stimmt, Ich kann das ja einfach einem Konstrukter übergeben... Ich bin auch n Licht^^ Danke!
Hatte bisher noch nix mit GUIs am Hut...

Eine zweite Frage bleibt mir aber noch. Und zwar zu Threads. Wie kann Ich denen etwas übergeben?
Also mein Thread sieht so aus und Ich müsste auch ihm die JFrame übergeben. Wäre es dann nicht besser, die JFrame evtl. doch statisch zu machen?

Unbenannt.JPG
 
Dir ist schon klar, dass das eine Endlosschleife ist, die 100% CPU-Zeit in Anspruch nimmt?
Ich meine bei Java kann man innerhalb der anonymen Klasse auf die lokalen Variablen zugreifen, wenn diese als final deklariert sind.
 
Ja, dass soll auch eine Art Listner sein, der muss dann halt ständig laufen... Aber kann man Threads Parameter übergeben?
 
Das ist kein Listener, das ist ein Poller und sowas macht nur selten Sinn. Hier macht es keinen Sinn.
Ein Listener wäre es, wenn der Thread auf die Änderung von nickNameLogin.Text lauschen würde.

Und ja, es können Parameter übergeben werden.
 
So, meine jetzigen Fragen sind bisher geklärt und auch gelöst!
Allerdings bleiben mir da noch eine neue Fragen!

Die Frage, wie ich jetzt Panles austausche ist geklärt und ich weiß auch wie ich das umsetzte.
Allerdings, wie kann ich die anderen JPanels im GUI Designer designen?
Weil man kann ja das nicht einfach darüber legen... :/
 
Über das CardLayout bin ich auch schon gestolpert, allerdings ist das nicht so schön bzw. wird dann nicht so schön aussehen und ist auch nicht so nutzter freundlich, finde ich!
 
Falls du die Tabs in dem verlinkten Tutorial meinst, das ist ein anderes Layout. CardLayout ist "unsichtbar". Wenn es nicht schön oder benutzerfreundlich ist, liegt es nicht am CardLayout.
 
Zurück
Oben