Jak używać GridBayLayout w Javie (Swing) do generowania tego konkretnego obrazu w mojej ramce?

Zasadniczo, jak mam to wygenerować? Jestem pewien, że to zadanieGridBagLayout, ale nie jestem w stanie owinąć głowy wokół tego, jak prawidłowo dopasować „okienko akcji” do „paska menu”. Czerwone i czarne linie wskazują siatkę, którą, jak sądzę, powinieneś użyć w tym przypadku (3x3), ale mogę być całkowicie w błędzie i może być sposób na zrobienie tego w innej konfiguracji. Próbowałem zepsućweightx, weighty, gridheight, gridwidth wartości wGridBagConstraints, ale nie mogę osiągnąć moich celów tutaj.

Zauważ, że druga czerwona linia ma być dokładnie jedną trzecią wysokości dolnej połowy ramki.

To jest moja ostatnia próba, próbując użyć siatki 3x6 (c jest obiektem GridBagConstraints, a CharacterPortraits zawierają wszystkie portrety, a currentScreen to „Okienko akcji”):

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);    

Zamiast tego tworzy każdy portret w dolnej trzeciej ćwiartce kwadratu, a okienko akcji przyjmuje 5/6 środkowej kolumny zamiast 4/6, tak jak chcę. Pomysły pomogłyby; dzięki! -B.

EDYCJA: Projektuję tę aplikację, aby miała stały rozmiar okna; ludzie mogą powiedzieć, że to zły projekt, ale naprawdę próbuję wyczuć elementy Swinga i upewnić się, że przynajmniej zachowują się w stałym oknie, tak jak chcę. Myślę, że mogę pozwolić na maksymalne poprawienie rozmiaru, ale to wszystko.

questionAnswers(2)

yourAnswerToTheQuestion