LayoutManager Layout mit GridBagLayout machbar?

HankScorpio

Mitglied
Hallo,

ich möchte gerne "von Hand" eine Oberfläche erstellen, die sich in etwa so verhalten soll:

f1y4G.png


Die 3 JPanels enthalten verschiedene Steuerelemente wie Buttons und verwenden jeweils passende LayoutManager. Das funktioniert soweit auch alles, wie es soll. Nun möchte ich die JPanels aber gerne positionieren wie auf dem Bild, was ich zur Illustration mal zusammengefummelt habe (MS Word ftw XD). Ein Panel soll stets in der Mitte des Bildschirms positioniert sein (auch nach Resizen des JFrames), die beiden anderen jeweils in den unteren Ecken des JFrames. Sie sollen, wenn der Frame vergrößert/maximiert bzw. verkleinert wird, jeweils ihren Abstand zum Rand beibehalten.

Muss ich hier den LayoutManager für den JFrame auf null setzen und alles "zu Fuß" umsetzen, d.h. die Positionen der Panels selbst berechnen (*urgh*), oder könnte ich das irgendwie mit GridBagLayout hinbekommen? Kann mir da jemand eine Empfehlung oder Tipps geben?

Danke bereits im Voraus!

Viele Grüße!
Hank
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Die Frage: "Kann man dieses Layout mit einem GridBagLayout umsetzen?" kann man fast immer mit "JA" beantworten. Die Frage: "Würde man dieses Layout mit einem GridBagLayout umsetzen?" würde ich fast immer mit "nein" beantworten ;)

In diesem Fall... Das ContentPane vom JFrame könnte ein BorderLayout haben. Im SOUTH liegt ein Panel mit BorderLayout, und dort in EAST und WEST die eingezeichneten Panels.
Im CENTER des Hauptlayouts würde dann das mittlere Panel liegen. Einen LayoutManager, der ein Panel immer zenrtiert, kenne ich nicht - aber vielleicht kann man dann NUR dafür ein GridBagLayout verwenden...
 

HankScorpio

Mitglied
Danke für die Antworten! :)

Schon, aber dann wird das Panel in der Mitte auch gleich immer "aufgeblasen", was aber der Zeichnung nach, nicht sein soll.
Ja, genau. Das JPanel in der Mitte soll nicht gestreckt werden.

Ob das so in diese Richtung funktionieren könnte?

NU0J8.png


Wie auf diesem Bild wäre es ja vllt. mit einem GridBagLayout für den JFrame machbar, wo ich 4 Panels untereinander in einer Spalte anordne und das 2. und 4. "Zeilenpanel" wiederum mit GridBagLayouts aufteile?

Ich stehe noch ein bisschen auf dem Schlauch. Wie würdet ihr das machen?

Wenn ich für das Hauptlayout des JFrame BorderLayout nehme, müsste ich im Center-Bereich wohl noch mal irgendein Unterpanel einbauen, damit mein eigentliches Mittelpanel nicht über einen Großteil des Fensters gestreckt wird, oder?
 

javaDev2011

Mitglied
Hallo HankScorpio,

ich hab dir jetzt auch nochmal ein Beispiel mit dem GridBagLayout gamacht, ist zwar immer etwas aufwendig, man kann aber auch sehr viele Komponenten genau so anordnen wie man will.

Hier der Code, und im Anhang ein JAR dazu.

Java:
package forumgbl;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class GBLFrame extends JFrame {

    public GBLFrame(){
        GridBagLayout gbl = new GridBagLayout();
        setLayout(gbl);
        GridBagConstraints gbc = new GridBagConstraints();

        JButton buttonMitte = new JButton("ButtonMitte");
            // anfangs-zelle
            gbc.gridx = 0;
            gbc.gridy = 0;
            // zellen-ausmaße
            gbc.gridwidth = 2;
            gbc.gridheight = 1;
            // anordnung der komponente
            gbc.anchor = GridBagConstraints.CENTER;
            // zugeteilter anteil bei vergrößerung des fensters
            gbc.weightx = 1;
            gbc.weighty = 0.5;
            gbl.setConstraints(buttonMitte, gbc);
        add(buttonMitte);

        JButton buttonRechtsUnten = new JButton("buttonRechtsUnten");
            // anfangs-zelle
            gbc.gridy = 1;
            // zellen-ausmaße
            gbc.gridwidth = 1;
            // anordnung der komponente
            gbc.anchor = GridBagConstraints.SOUTHWEST;
            // zugeteilter anteil bei vergrößerung des fensters
            gbc.weightx = 0.5;
            gbl.setConstraints(buttonRechtsUnten, gbc);
        add(buttonRechtsUnten);

        JButton buttonLinksUnten = new JButton("buttonLinksUnten");
            // anfangs-zelle
            gbc.gridx = 1;
            // anordnung der komponente
            gbc.anchor = GridBagConstraints.SOUTHEAST;
            gbl.setConstraints(buttonLinksUnten, gbc);
        add(buttonLinksUnten);
    }

    public static void main(String[] args) {
        GBLFrame gblf = new GBLFrame();
        gblf.setSize(300, 200);
        gblf.setVisible(true);
    }

}

javaDev2011
 

Anhänge

  • ForumGBL.jar
    2,1 KB · Aufrufe: 4

HankScorpio

Mitglied
Wow, vielen Dank für das tolle Code-Beispiel!!! :) Das hat mein Problem gelöst! :)

Ich habe noch eine Zeile hinzugefügt, nämlich bei den Constraints der unteren "Zeile" weighty auf 0 zurückgesetzt (zwischen Zeilen 38-39). Dadurch sieht das jetzt genauso aus, wie ich es gerne haben wollte! :)

PmB4q.png


javaDev2011, vielen Dank noch mal!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F GridBagLayout layout alignment AWT, Swing, JavaFX & SWT 3
P [Layout] GridbagLayout: JScrollPane in JPane AWT, Swing, JavaFX & SWT 2
N Layout-Problem (JScrollPane, GridBagLayout) AWT, Swing, JavaFX & SWT 3
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
S Layout - Problem AWT, Swing, JavaFX & SWT 1
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
R Layered Layout AWT, Swing, JavaFX & SWT 1
E showAndWait is not allowed during animation or layout processing Memory FX AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
I JavaFX - festes Layout AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing Card-Layout, Fokus AWT, Swing, JavaFX & SWT 2
kilopack15 Interface mit Layout verknüpfen AWT, Swing, JavaFX & SWT 2
Y Layout/Ausrichtungsprobleme AWT, Swing, JavaFX & SWT 4
T JavaFX Custom Layout AWT, Swing, JavaFX & SWT 5
A GUI Layout AWT, Swing, JavaFX & SWT 11
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout reagiert nicht auf Constraints AWT, Swing, JavaFX & SWT 4
IsSchoGuat LayoutManager Layout-Containergrösse AWT, Swing, JavaFX & SWT 4
F GridBag Layout AWT, Swing, JavaFX & SWT 1
Z Absolutes Layout / Kontrolle über Anordnung AWT, Swing, JavaFX & SWT 3
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
J ComboBoxModel addElement verändert Layout AWT, Swing, JavaFX & SWT 8
E Probelm mit Layout AWT, Swing, JavaFX & SWT 1
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
P Tipps für GUI-Layout AWT, Swing, JavaFX & SWT 2
M Passender Layout-Manager AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout zur Laufzeit ändern AWT, Swing, JavaFX & SWT 8
N Swing Zweifarbiges Layout für den Filechooser AWT, Swing, JavaFX & SWT 12
B LayoutManager Card Layout AWT, Swing, JavaFX & SWT 2
E Angehängtes Layout, aber wie? AWT, Swing, JavaFX & SWT 12
1 Eigenes Layout schreiben AWT, Swing, JavaFX & SWT 4
B SWT layout invalidieren in SWT? AWT, Swing, JavaFX & SWT 4
R Welchen Layout Manager/ Wie strukturieren? AWT, Swing, JavaFX & SWT 14
J Layout: oben 20% unten 80% AWT, Swing, JavaFX & SWT 12
T Layout für Listendarstellung AWT, Swing, JavaFX & SWT 3
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
C LayoutManager Passendes Layout gesucht AWT, Swing, JavaFX & SWT 2
M Layout funktioniert nicht AWT, Swing, JavaFX & SWT 3
dzim Layout von Panes in JFX2 AWT, Swing, JavaFX & SWT 17
H Layout Idee AWT, Swing, JavaFX & SWT 8
M Swing Dynamisches Layout AWT, Swing, JavaFX & SWT 10
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
J LayoutManager Komponentenaustausch zerschießt Layout AWT, Swing, JavaFX & SWT 4
F Layout-Problem AWT, Swing, JavaFX & SWT 2
K Gui Layout Frage AWT, Swing, JavaFX & SWT 5
B Anderen Layout-Manager verwenden AWT, Swing, JavaFX & SWT 17
E Null-Layout - Wie geht es ohne? AWT, Swing, JavaFX & SWT 19
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
L Swing dynamisches Image-Panel in Layout einbinden AWT, Swing, JavaFX & SWT 10
D Bild in JPanel verschiebt Layout. Wie fixieren? AWT, Swing, JavaFX & SWT 9
GUI-Programmer Wieder ne Layout Frage AWT, Swing, JavaFX & SWT 11
GUI-Programmer LayoutManager Kurze Layout Frage - eine komponente mittig? AWT, Swing, JavaFX & SWT 5
D Problem mit 3-Spalten Layout AWT, Swing, JavaFX & SWT 17
ARadauer Wenig Material zum Thema: Design, Layout, Usability von Swing Anwendungen AWT, Swing, JavaFX & SWT 11
S LayoutManager Welcher LayoutManager für dieses zweispaltige Layout? AWT, Swing, JavaFX & SWT 13
G LayoutManager Layout welches von Links nach rechts anordnet mit TOP Alignment! AWT, Swing, JavaFX & SWT 5
A Best practice für konkretes Layout AWT, Swing, JavaFX & SWT 10
G LayoutManager Layout für Spalten AWT, Swing, JavaFX & SWT 8
A Layout/JPanelgröße AWT, Swing, JavaFX & SWT 6
S pack() bei null-Layout AWT, Swing, JavaFX & SWT 10
C SWT Tabellen-Layout in StyledText? AWT, Swing, JavaFX & SWT 6
J LayoutManager Welchen Layout/Design-Manager? AWT, Swing, JavaFX & SWT 4
R Swing Layout setzen AWT, Swing, JavaFX & SWT 3
L Layout automatische Anpassung umgehen? AWT, Swing, JavaFX & SWT 5
A Problem mit Layout-Manager AWT, Swing, JavaFX & SWT 11
J Button Layout anpassen AWT, Swing, JavaFX & SWT 22
B Buttongröße im Layout AWT, Swing, JavaFX & SWT 4
B LayoutManager Layout Problem AWT, Swing, JavaFX & SWT 14
O LayoutManager Layout entwerfen AWT, Swing, JavaFX & SWT 3
A diverse Layout-Fragen AWT, Swing, JavaFX & SWT 4
F LayoutManager Eigenes Layout die Lösung?! AWT, Swing, JavaFX & SWT 4
dzim SWT Layout mit Sections aus Eclipse Forms AWT, Swing, JavaFX & SWT 17
F JScrollPane verwirft Layout von JPanel AWT, Swing, JavaFX & SWT 2
C LayoutManager Layout und vergrößern des Frames AWT, Swing, JavaFX & SWT 5
E Swing Runde Buttons / Position eines Obj. im Layout AWT, Swing, JavaFX & SWT 7
S Swing UI-Elemente ordnen sich ungewollt in einer Reihe (ohne Layout) AWT, Swing, JavaFX & SWT 5
A Ungewollte Layout änderungen AWT, Swing, JavaFX & SWT 3
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
E JPanel mit Null Layout entfernt Buttons AWT, Swing, JavaFX & SWT 11
N Swing Layout positionieren AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben