实现类似于图片的gui?

Achieving a gui similiar to the picture?

我的计划是获得类似的输出,但出于某种原因,我只获得了南面板...

我的逻辑是有 1 个北中南的主面板。

South BoxLayour行第二行的另一个BoxLayout,我再添加一个Boxlayout,左对齐

这是我的代码:

 public static void main(String args[]) {

        EventQueue.invokeLater(new Runnable() {
            @Override


        public void run() {
                JFrame frame = new JFrame();
            frame.setSize(new Dimension(500,600));
            JPanel MainPanel = new JPanel();
frame.add(MainPanel);

            JPanel NorthPanel = new JPanel(); //upper panel to add boxx layout and inside it 2 panls
            JPanel ToPanel = new JPanel(); //inside north
            JPanel SubjectPanel = new JPanel(); //inside north

            NorthPanel.setLayout(new BoxLayout(NorthPanel, BoxLayout.Y_AXIS));
            MainPanel.add(NorthPanel, BorderLayout.NORTH);


            JLabel SubjectLabel = new JLabel("Subject");  SubjectLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
            JTextField  SubjectTextField = new JTextField(20); SubjectTextField.setAlignmentX(Component.RIGHT_ALIGNMENT);

            JLabel ToLabel = new JLabel("To");  ToLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
            JTextField  ToTextField = new JTextField(20); ToTextField.setAlignmentX(Component.RIGHT_ALIGNMENT);
            ToPanel.add(ToLabel);
            ToPanel.add(ToTextField);

            ToPanel.add(SubjectLabel);
            ToPanel.add(SubjectTextField);
            NorthPanel.add(ToPanel);

            JPanel CenterPanel = new JPanel(); //Center panel  blank
            MainPanel.add(CenterPanel, BorderLayout.CENTER);
            ///
            JPanel SouthPanel = new JPanel();
            NorthPanel.setLayout(new BoxLayout(NorthPanel, BoxLayout.Y_AXIS));

            JPanel FontPanels = new JPanel();
            FontPanels.setLayout(new BoxLayout(FontPanels, BoxLayout.PAGE_AXIS));
            FontPanels.add(new JButton("Bold"));
            FontPanels.add(new JButton("Italic"));
            FontPanels.add(new JButton("Underlined"));
            FontPanels.add(new JButton("Undo"));
            FontPanels.add(new JButton("Redo"));
            FontPanels.setAlignmentX(Component.CENTER_ALIGNMENT);

            JPanel OptionPanel = new JPanel();
            OptionPanel.setLayout(new BoxLayout(OptionPanel, BoxLayout.PAGE_AXIS));

            FontPanels.setLayout(new BoxLayout(FontPanels, BoxLayout.PAGE_AXIS));

            OptionPanel.add(new JButton("Send"));

            OptionPanel.setAlignmentX(Component.CENTER_ALIGNMENT);
                    SouthPanel.add(FontPanels);
                    SouthPanel.add(OptionPanel);

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);

        }

    });

    }

您尚未向 JFrame 添加任何内容 - 因此它自然会显示空白 JFrame。

要显示每个组件,您需要执行 frame.add(component);

我把框架的布局管理器留给你。