JPanel dynamisch gestalten

Underworld

Aktives Mitglied
Hi!
folgendes Problem:
Ich gestalte ein Panel für eine Art "Funktionsplotter".

In diesem Funktionsplotter kann man verschiedene Einstellungen auswählen. Dort ist unter anderem ein JPanel, das wiederrum mehrere Objekte enthält.
praktisch sieht das ungefähr so aus:
Java:
JPanel container;
JLabel label1, label2;
JSlider slider1, slider2;
JButton button;

container.add(label1);
container.add(slider1);
container.add(label2);
container.add(slider2);
container.add(button);

Nun, zum eigentlich Problem. Ich will, dass man mein Fenster vergößern und verkleinern kann.
Dieser JPanel wird darin natürlich angezeigt und auch dementsprechend vergrößert/verkleinert.

Wenn ich das Fenster (und damit auch den container) zu klein ziehe, wird der JPanel zu klein und kann nicht mehr alle enthaltenen Objekte korrekt anzeigen. Es scheint mir, dass er eine 2te Zeile erzeugt, aber den JPanel dabei nicht vergößert.

Wie lege ich das Layout meines Panels so fest, dass diesrt besser funktioniert?
z.B. durch Erzeugen einer 2ten Zeile, scrollBar etc.
(Notlösung: Minimale Größe des Fensters (Panels) festlegen, aber darauf habe ich eigentlich keine Lust)

Die Art der Lösung ist mir primär erstmal egal. Wichtig ist für mich, dass ich eine akzetable Lösung finde.

Im Voraus schon mal vielen Dank für eure Antworten.
 

Underworld

Aktives Mitglied

Erstmal vielen Dank für die Antwort!

Diese Seite kenne ich jedoch schon. Doch ich bin mir nicht sicher was ich davon für die Bewältigung für mein Problem benötige.

Aber ich mache mir jetzt erstmal nochmal die Mühe, das genauer durchzulesen. Vielleicht habe ich nur etwas überlesen.

Edit: Ein weiteres Problem könnte sein, dass mein JFrame nicht automatisch angepasst wird.
Mein Funktionsplotter besteht im Allgemeinen aus 3 Komponenten mit BorderLayout:

Einer Menüleiste(north), dem Zeichenpanel (Center) und einer tabbedPane(South).

Hat ein JFrame denn auch soetwas wie eine "repaint" Methode? Wenn dann fenster.pack() aufgerufen würde, müsste sich doch alles wieder "richtig hinbiegen".
 
Zuletzt bearbeitet:

Marco13

Top Contributor

Underworld

Aktives Mitglied
Auf A Visual Guide to Layout Managers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container) gibt es ja eine Übersicht darüber, welche LayoutManager es so gibt. Vielleicht geht es nur darum, die geeignet zu verschachteln? Welchen LayoutManager hat denn der "container" aus deinem Beispiel?

contentPane.setLayout(new BorderLayout());


Jedenfalls gibt es halt ein Problem, wenn man das Fenster 100x100 Pixel klein zieht: Dann PASST eben nicht mehr alles rein, egal, wie es angeordnet ist....
Na, das ist nicht das Problem. Das Fenster ist bestimmt noch 500*500 groß. Das sollte kein großes Problem darstellen.
Die tabbedPane schafft es ja auch, sich in 2 Reihen aufzuspalten, wenn es zu klein wird.
 

Underworld

Aktives Mitglied
So. Das ist Problem ist gelöst.

Ich schreibe noch die Lösung hin, falls es andere interessiert:

Marco13 hat mich auf diesen Thread aufmerksam gemacht:
http://www.java-forum.org/codeschni...flowlayout-fuer-zeilenumbruch.html#post380147

dort wird eine neues Layout ExtendedFlowLayout() eingeführt. Dies ermöglicht einen Zeilumbruch im FlowLayout.

Ich hab einfach dann einfach jedem Panel dieses neue Layout übergeben und es hat funktioniert:
Java:
JPanel panel1= new JPanel(new ExtendedFlowLayout());
 

Marco13

Top Contributor
Hast du das Problem, dass dieses Layout erst "mit einem Schritt verzögerung" auf Größenänderungen reagiert, auch gelöst? Ich hatte ja erwähnt: Eigentlich wäre das IMHO ein Fall für ein GridLayout, um die Anordnung der Components nicht durch den "an zufälliger Stelle" entstehenden Zeilenumbruch "kaputt" zu machen, aber ... mir kann's ja egal sein.
 

Underworld

Aktives Mitglied
Hast du das Problem, dass dieses Layout erst "mit einem Schritt verzögerung" auf Größenänderungen reagiert, auch gelöst? Ich hatte ja erwähnt: Eigentlich wäre das IMHO ein Fall für ein GridLayout, um die Anordnung der Components nicht durch den "an zufälliger Stelle" entstehenden Zeilenumbruch "kaputt" zu machen, aber ... mir kann's ja egal sein.

Nein, dieses Problem habe ich noch nicht gelöst.
Der Panel beim Starten des Programms ist immer noch zu groß. Sobald ich den JFrame einmal vergrößert habe, läuft es einwandfrei.

Meine Anordnung kann auch nicht mehr zufällig entstehen, da ich jetzt zusammengehörende Buttons/TextFields einfach in einen eigenenständigen Panel gepackt habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JPanel dynamisch anpassen Java Basics - Anfänger-Themen 5
P JPanel dynamisch mit ActionListener verwalten Java Basics - Anfänger-Themen 3
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
Kenan89 JPanel mit JTable Java Basics - Anfänger-Themen 9
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
E Erste Schritte Objekte werden in JPanel angedockt und maximiert Java Basics - Anfänger-Themen 7
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
X JTable in JPanel in JTabbedPane mouseevent von jtable kommt nicht durch Java Basics - Anfänger-Themen 3
P GUI, JPanel Java Basics - Anfänger-Themen 7
H JPanel in andere Klasse übergeben Java Basics - Anfänger-Themen 7
D Grösse eines JPanel hinsichtlich LayoutManager festlegen Java Basics - Anfänger-Themen 4
B JPanel über anderem JPanel Java Basics - Anfänger-Themen 6
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
F Unterschied JPanel und JFrame Java Basics - Anfänger-Themen 5
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
C jPanel im jPanel verändern Java Basics - Anfänger-Themen 15
B JPanel nachträglich verändern Java Basics - Anfänger-Themen 20
C JPanel erhält sporadisch keinen Fokus Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben