Hilfe! Bin kurz vorm Durchdrehen
Ich hab mein Programm so weit fertig gehabt - einziges Problem: ich habe (da dies mein erstes Projekt in der Richtung war) keinen Layout-Manager verwendet (also setLayout(null)), und dabei waren Scrollbars nicht möglich. Da die GUI möglicherweise zur Laufzeit größer wird und so im worst case teilweise außerhalb des Bildschirms liegt, musste ich jetzt nachträglich noch alles umständlich in Layout-Manager pressen. Leider haben sich dadurch nur noch mehr Komplikationen ergeben und Scrollbars sind lustigerweise auch nicht vorhanden.
Da das ganze zu einem Wettbewerb gehört, würde ich den Quellcode lieber nur per PN verschicken. Wäre echt cool, wenn sich trotzdem jemand melden könnte...
Generell ist der Aufbau so:
D.h. ich wollte panel bzw dessen Inhalt die Möglichkeit geben, falls nötig Scrollbars zu bilden, und habe das entstandene scrollPane auf meine GUI gepackt. Dabei hat panel ein GridLayout mit einer Spalte und beliebig vielen Zeilen. In panel befinden sich zwei andere Panel, die also jeweils die obere bzw untere Hälfte der GUI einnehmen, panel2 und panel3.
Bei Programmstart befindet sich vorerst nur panel2 im panel (bekommt also 100% des Platzes, klappt soweit auch) und erst zur Laufzeit wird zu einem Zeitpunkt noch panel3 hinzugefügt.
Auch dies klappt noch (beide Panels haben danach natürlich 50% des GUI-Platzes).
Was nun leider zum Problem führt: panel3 besitzt ein null-Layout und (natürlich ebenfalls zur Laufzeit) ändere ich mit panel3.setBounds() die Größe von diesem (sowie der GUI, damit sie weiterhin groß genug bleibt, um panel3 anzeigen zu können).
Auch nach meinem "Layout-Manager-Umbau" passt die GUI (also das JFrame) die Größe noch wie erwünscht an, allerdings werden panel2 und panel3 von der Höhe her nicht angepasst, sie nehmen weiterhin die gleiche Menge an Platz ein und die "Vergrößerung" des JFrames bleibt weiß. Wenn das JFrame sich soweit vergrößert, dass es über den Bildschirm hinausgeht, entstehen weiterhin keine Scrollbars.
Ich hoffe, dass das jetzt nicht zu unverständlich war. Wie gesagt verschicke ich bei Bedarf gerne den kompletten Quellcode per PN (auch wenn es etwas viel ist...). Vielleicht findet sich ja jemand, der mir weiterhelfen kann... danke im Voraus :/
Das Problem an diesen Layout-Managern ist halt auch, dass das obere Panel nicht mitwachsen soll, wenn sich das untere vergrößert... absolute Positionierung hat (abgesehen von den fehlenden Scrollpanes) toll geklappt...
Ich hab mein Programm so weit fertig gehabt - einziges Problem: ich habe (da dies mein erstes Projekt in der Richtung war) keinen Layout-Manager verwendet (also setLayout(null)), und dabei waren Scrollbars nicht möglich. Da die GUI möglicherweise zur Laufzeit größer wird und so im worst case teilweise außerhalb des Bildschirms liegt, musste ich jetzt nachträglich noch alles umständlich in Layout-Manager pressen. Leider haben sich dadurch nur noch mehr Komplikationen ergeben und Scrollbars sind lustigerweise auch nicht vorhanden.
Da das ganze zu einem Wettbewerb gehört, würde ich den Quellcode lieber nur per PN verschicken. Wäre echt cool, wenn sich trotzdem jemand melden könnte...
Generell ist der Aufbau so:
Java:
private JScrollPane scrollPane = new JScrollPane (panel,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
this.setContentPane(scrollPane);
Bei Programmstart befindet sich vorerst nur panel2 im panel (bekommt also 100% des Platzes, klappt soweit auch) und erst zur Laufzeit wird zu einem Zeitpunkt noch panel3 hinzugefügt.
Auch dies klappt noch (beide Panels haben danach natürlich 50% des GUI-Platzes).
Was nun leider zum Problem führt: panel3 besitzt ein null-Layout und (natürlich ebenfalls zur Laufzeit) ändere ich mit panel3.setBounds() die Größe von diesem (sowie der GUI, damit sie weiterhin groß genug bleibt, um panel3 anzeigen zu können).
Auch nach meinem "Layout-Manager-Umbau" passt die GUI (also das JFrame) die Größe noch wie erwünscht an, allerdings werden panel2 und panel3 von der Höhe her nicht angepasst, sie nehmen weiterhin die gleiche Menge an Platz ein und die "Vergrößerung" des JFrames bleibt weiß. Wenn das JFrame sich soweit vergrößert, dass es über den Bildschirm hinausgeht, entstehen weiterhin keine Scrollbars.
Ich hoffe, dass das jetzt nicht zu unverständlich war. Wie gesagt verschicke ich bei Bedarf gerne den kompletten Quellcode per PN (auch wenn es etwas viel ist...). Vielleicht findet sich ja jemand, der mir weiterhelfen kann... danke im Voraus :/
Das Problem an diesen Layout-Managern ist halt auch, dass das obere Panel nicht mitwachsen soll, wenn sich das untere vergrößert... absolute Positionierung hat (abgesehen von den fehlenden Scrollpanes) toll geklappt...