我正在尝试使用gridbagayout对齐jtabbedpane和滚动窗格。我试图将它们垂直对齐。但是,结果是水平的。有人为什么会这样吗?谢谢。

这是实际结果:
java - java GridBagLayout无法正常工作?-LMLPHP

这是我的代码:

  JTabbedPane tabs= new JTabbedPane();
  tabs.setOpaque(false);


        JScrollPane textScrollPane= new JScrollPane();
            textArea= new JTextArea();
            textArea.setEditable(false);
            DefaultCaret caret = (DefaultCaret)textArea.getCaret();
            caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
            textScrollPane.setViewportView(textArea);

    GridBagConstraints c = new GridBagConstraints();
        {
            c.fill = GridBagConstraints.BOTH;
            c.gridx = 0;
            c.gridy = 0;
            c.weightx=1;
            c.gridheight=4;
            panel.add(tabs,c);

            c.fill = GridBagConstraints.BOTH;
            c.gridx=0;
            c.gridy=1;
            c.weightx=1;
            c.gridheight=1;
            c.ipadx=20;
            c.ipady=10;
            panel.add(textScrollPane,c);

            /////restore to default
            c.gridheight=1;
            c.ipadx=0;
            c.ipady=0;
        }

最佳答案

但是,结果是水平的。有人为什么会这样吗?


可能是因为JPanel的默认布局管理器是FlowLayout,并且在创建面板时没有更改布局管理器。 FlowLayout水平显示组件。

创建面板时,您还需要:

JPanel panel = new JPanel( new GridBagLayout() );

关于java - java GridBagLayout无法正常工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46648497/

10-10 17:23