Wie verwende ich GridBayLayout in Java (Swing), um dieses bestimmte Bild in meinem Frame zu generieren?

Wie kann ich das generieren? Ich bin mir ziemlich sicher, dass dies ein Job für mich istGridBagLayout, aber ich kann mich nicht darum kümmern, wie die Größe des "Aktionsfensters" im Vergleich zur "Menüleiste" richtig bemessen wird. Die roten und schwarzen Linien zeigen das Raster an, von dem ich glaube, dass Sie es in diesem Fall verwenden sollen (3x3), aber ich könnte völlig falsch liegen und es könnte eine Möglichkeit geben, dies in einer anderen Konfiguration zu tun. Ich habe versucht, mit dem rumzuspielenweightx, weighty, gridheight, gridwidth Werte inGridBagConstraints, aber ich kann meine Ziele hier nicht erreichen.

Beachten Sie, dass die zweite rote Linie genau ein Drittel der Höhe der unteren Hälfte des Rahmens betragen soll.

Dies ist mein letzter Versuch, ein 3x6-Raster zu verwenden (c ist das GridBagConstraints-Objekt, characterPortraits enthält alle Porträts und currentScreen ist das 'Aktionsfenster'):

c.fill = GridBagConstraints.BOTH;
    c.weightx = 0.25;
    c.weighty = (1/6);
    c.gridx = 0;
    c.gridy = 0;
    c.gridheight = 3;
    pane.add(characterPortraits.get(0), c);  

    c.gridx = 2;        
    pane.add(characterPortraits.get(1), c);          

    c.gridx = 0;
    c.gridy = 3;
    c.gridheight = 3;
    pane.add(characterPortraits.get(2), c);  

    c.gridx = 2;        
    pane.add(characterPortraits.get(3), c);

    //c.fill = GridBagConstraints.NONE;
    c.weightx = 1.0;
    c.weighty = 1.0;
    c.gridx = 1;
    c.gridy = 0;
    c.gridheight = 3;
    pane.add(currentScreen, c);    

Stattdessen wird jedes Porträt im unteren Drittel seines Quadranten erstellt, und im Aktionsbereich wird 5/6 der mittleren Spalte anstelle von 4/6 verwendet, wie ich es möchte. Irgendwelche Ideen würden helfen; Vielen Dank! -B.

BEARBEITEN: Ich entwerfe diese Anwendung mit einer festen Fenstergröße; Leute mögen sagen, das ist schlechtes Design, aber ich versuche wirklich nur, ein Gefühl für Swing-Komponenten zu bekommen und sicherzustellen, dass sie sich zumindest in einem festen Fenster so verhalten, wie ich es möchte. Ich denke, ich kann eine Maximierung für die richtige Größenänderung zulassen, aber das war es auch schon.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage