如何将jPanel中的所有jPanel对齐到左边?

Oma*_*sem 2 java swing jpanel layout-manager boxlayout

嘿,我正在尝试将面板内的所有面板对齐到较大面板的左侧.

这是我目前面临的情况:

箱面板布局

对于主面板(包含所有其他面板的面板 - 我将其称为主面板!)我在创建它时使用以下代码:

    JPanel panel = new JPanel();
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
Run Code Online (Sandbox Code Playgroud)

对于其中的每个面板,我也使用BoxLayout,但我在每个面板上尝试了[jpanel] .setAlignmentX(Component.LEFT_ALIGNMENT)之类的东西,但这似乎不起作用.

任何帮助,将不胜感激!

:)

编辑:对于"盒子尺寸(m):"标签,有没有办法将它对齐到它所包含的面板顶部?它在自己的一个小组中.

编辑:修复后:

JPanel问题一旦修复

以下解决方案,谢谢大家的帮助:)

Mad*_*mer 5

您有多种可能性,具体取决于您的所有需求.

我在这里所做的只是使用复合面板并GridBagLayout用于调整布局

在此输入图像描述

public class BadLayout03 {

    public static void main(String[] args) {
        new BadLayout03();
    }

    public BadLayout03() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new MasterPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class MasterPane extends JPanel {

        public MasterPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 1;
            gbc.weightx = 1;
            gbc.fill = GridBagConstraints.HORIZONTAL;
            gbc.insets = new Insets(4, 4, 4, 4);
            gbc.anchor = GridBagConstraints.WEST;
            add(new DimensionsPane(), gbc);
            gbc.gridy++;
            add(new ColorPane(), gbc);
            gbc.gridy++;
            add(new ReinforementPane(), gbc);
            gbc.gridy++;
            add(new SealableTopPane(), gbc);
            gbc.gridy++;
            add(new CardGradePane(), gbc);
            gbc.gridy++;
            add(new QuantityPane(), gbc);
            gbc.gridy++;
            add(new OrderPricePane(), gbc);
        }

    }

    public class DimensionsPane extends JPanel {

        public DimensionsPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 1;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Dimensions of box (m):"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("Length: 33.0"), gbc);
            gbc.gridy++;
            add(new JLabel("Width: 3.0"), gbc);
            gbc.gridy++;
            add(new JLabel("Height: 3.0"), gbc);
        }

    }

    public class ColorPane extends JPanel {

        public ColorPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Colour :"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("0"), gbc);
        }

    }

    public class ReinforementPane extends JPanel {

        public ReinforementPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Reinforcement :"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("None"), gbc);
        }

    }

    public class SealableTopPane extends JPanel {

        public SealableTopPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Selable top :"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("No"), gbc);
        }

    }

    public class CardGradePane extends JPanel {

        public CardGradePane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Grade of card:"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("1"), gbc);
        }

    }

    public class QuantityPane extends JPanel {

        public QuantityPane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Quantity:"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("1"), gbc);
        }

    }

    public class OrderPricePane extends JPanel {

        public OrderPricePane() {
            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1;
            gbc.anchor = GridBagConstraints.WEST;
            add(new JLabel("Order price:"), gbc);

            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.EAST;
            add(new JLabel("$558.9"), gbc);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)