Jak mogę to zrobić za pomocą BoxLayout?

Ustawiłem już menu (pola środkowe) doskonale, ale nie wiem, jak mogę ustawić etykietę. Obecnie dzieje się tak, że etykieta znajduje się poniżej opcji menu, a opcje menu są przesunięte w prawo.

Oto, co chcę zrobić:

A oto co się dzieje:

Obecnie mam swoje pudełka wyśrodkowane na:

this.setAlignmentX(Component.CENTER_ALIGNMENT);

Próbowałem zrobić to samo z moją etykietą, używając:

this.setAlignmentX(Component.BOTTOM_ALIGNMENT);
this.setAlignmentY(Component.LEFT_ALIGNMENT);

Co nic nie robi.

Niestety, diagram jest tak zły, że narysowałem go w programie MS Paint w około 20 sekund.

Oto ważna część etykiety

public Label(String text)
{

    this.setHorizontalTextPosition(JLabel.CENTER);
    this.setVerticalTextPosition(JLabel.CENTER);
    this.setHorizontalAlignment(0);
}

I tutaj tworzę boxlayout:

 pnlMain.setLayout(new BoxLayout(pnlMain, BoxLayout.Y_AXIS));

Edytować: Oto główna funkcja w mojej klasie rozszerzeń JFrame. Powyżej funkcji jest tylko tworzenie paneli, przycisków i etykiet.

public Window()
{
    //Create the JFrame
    super("Tank Trouble");
    this.pack();
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

    //Changes the frame size to your screen size
    Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (int) (dimension.getWidth());
    int y = (int) (dimension.getHeight());
    setSize(x,y);
    setResizable(false);
    //GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(this); //Makes the application go fullscreen

    getContentPane().add(pnlMaster);

    pnlMaster.add(pnlMenu, "Main Menu");
    pnlMaster.add(pnlOptions, "Options");
    pnlMaster.add(pnlGame, "Game");
    pnlMaster.add(pnlMenu2);

    switchTo("Main Menu");

    pnlOptions.setLayout(new BoxLayout(pnlOptions, BoxLayout.Y_AXIS));

    Box box = Box.createVerticalBox();
    box.add(Window.playS);
    box.add(Box.createVerticalStrut(20));
    box.add(Window.playM);
    box.add(Box.createVerticalStrut(20));
    box.add(Window.options);
    box.add(Box.createVerticalStrut(20));
    box.add(Window.language);
    box.add(Box.createVerticalStrut(20));
    box.add(Window.exit);
    box.add(Box.createVerticalStrut(20));

    pnlMenu.add(box);
    pnlMenu.add(new JPanel());
    pnlMenu.add(new JPanel());
    pnlMenu.add(new JPanel());
    pnlMenu.add(new JPanel());

    pnlMenu2.add(Window.lblVersion);

    System.out.println("Window class loaded");

}

Oto, jak wygląda obecnie moja klasa menu (to, co poprzednio zajmowało się wszystkim z przyciskami i etykietami poza ich tworzeniem).

package menu;

import main.Window;

public class Menu
{   
    public Menu()
    {
    Listener listener = new Listener();

    //Add ActionListeners
    Window.exit.addActionListener(listener);
    Window.playS.addActionListener(listener);
    Window.playM.addActionListener(listener);
    Window.options.addActionListener(listener);
    Window.language.addActionListener(listener);
    Window.btnBack.addActionListener(listener);

    System.out.println("Menu class loaded");
}
}

questionAnswers(1)

yourAnswerToTheQuestion