Problemas de alinhamento do Java Swing (BoxLayout)

Sou extremamente novo no Java Swing e estou tendo muitos problemas para obter um bom layout. Verifiquei o google e até outras respostas neste site, mas nenhuma informação encontrada parece resolver o problema. Aqui está o resultado dos meus esforços:

Como você pode ver, o rótulo, o campo de texto e o botão estão desalinhados. O meu objetivo é que todos eles tenham a mesma borda esquerda e que o campo de botão e texto tenha a mesma borda direita, com essas bordas esquerda e direita cada uma à mesma distância da esquerda e da direita lados da minha janela.

Aqui estão as partes importantes do meu código:

    public void run()
    {
         JFrame frame = new JFrame("Arduino Server");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         InstancePanel = new ServerGUIPanel();
         frame.getContentPane().add(InstancePanel);
         frame.pack();
         frame.setVisible(true);
    }

E, em ServerGUIPanel.java:

    public ServerGUIPanel()
    {
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
        setPreferredSize(new Dimension(500, 500));
        setBorder(new EmptyBorder(10, 10, 10, 10));



        StatusLabel = new JLabel("STATUS: BOOTUP");
        add(StatusLabel);

        PortField = new JTextField();
        PortField.setPreferredSize(new Dimension(5000, 20));
        PortField.setMaximumSize(PortField.getPreferredSize());
        PortField.setActionCommand("PortChanged");
        add(PortField);

        ConnectionButton = new JButton();
        ConnectionButton.setPreferredSize(new Dimension(5000, 20));
        ConnectionButton.setMaximumSize(ConnectionButton.getPreferredSize());
        ConnectionButton.setActionCommand("ConnectionClicked");
        add(ConnectionButton);
    }

Alguém tem uma solução simples para isso? O que eu estou fazendo errado aqui?

Muito obrigado!

--Georges Oates Larsen

questionAnswers(2)

yourAnswerToTheQuestion