BoxLayout显示不正确

ify*_*dig 1 java swing layout-manager boxlayout

我正在尝试创建一个非常简单的应用程序,它在状态栏面板上方有一个JSplitPane(分为JTabbedPane和JPanel).我想使用一个简单的布局(即BoxLayout,FlowLayout或BorderLayout),但我已经尝试了,他们都给了我同样的错误.我尽可能地简化了代码以显示错误.

错误是主框布局(框架)中应该只有2个区域:顶部(带有黑色边框的JSplitPane)和底部(带有JPanel状态栏).但是,当我添加状态栏时,左上角创建的第三个区域不包含任何内容.关于如何摆脱它的任何想法?

public static void main(String[] args) {
    JFrame frame = new JFrame("Application");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));

    // Create left side of the application
    JTabbedPane tabby = new JTabbedPane(JTabbedPane.LEFT);

    // Create right side of the application
    JPanel rightPanel = new JPanel(new BorderLayout());

    // Create the status bar at the bottom
    JPanel statusBar = new JPanel(new BorderLayout());
    JPanel statusBarPanel = new JPanel();
    statusBarLabel = new JLabel("Status Bar");
    statusBarPanel.add(statusBarLabel);
    parent.add(statusBarPanel);

    JSplitPane mainPain = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, tabby, rightPanel);
    frame.add(mainPain);
    frame.add(statusBar);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true); 
Run Code Online (Sandbox Code Playgroud)

申请3段.

cam*_*ckr 5

我正在尝试创建一个非常简单的应用程序,它在状态栏面板上方有一个JSplitPane(分为JTabbedPane和JPanel).

通常你只需使用BorderLayout框架的默认值然后执行:

frame.add(splitPane, BorderLayout.CENTER);
frame.add(statusBar, BorderLayout.PAGE_END);
Run Code Online (Sandbox Code Playgroud)

状态栏通常是一个或多个显示信息的标签,因此它们在底部以固定大小显示.

然后,另一个面板将包含应用程序的主要组件.然后,这些组件在调整大小时将获得帧的任何额外空间.

但我试过了,他们都给了我同样的错误

parent.add(statusBarPanel);
Run Code Online (Sandbox Code Playgroud)

变量"parent"不存在.摆脱它.将状态栏添加到框架,如上所示.