java GridBagLayout 不工作?

标签 java swing user-interface jpanel gridbaglayout

我正在尝试使用 gridbagayout 来对齐 jtabbedpane 和滚动 Pane 。我尝试将它们垂直对齐。然而,结果却是水平的。有人知道为什么会这样吗?谢谢。

这是实际结果: enter image description here

这是我的代码:

  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;
        }

最佳答案

However, the result was horizontal. Does anyone why this happened?

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

当您创建面板时,您还需要:

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

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

相关文章:

java - 安卓 : How to programmatically open the soft keyboard in Emoji View

java - 使用 vector 从数据库填充 JTable 并在最后一列中显示复选框

java - 使用 JComboBox 从 MySQL 数据库动态选择信息

java - 无法使用 Swing 登录

java - 如何在两个不同的 Swing 窗口之间共享方法?

python - 当我在 Connect Four 板上单击形状时,如何使它改变颜色?

c# - 如何将 Octave 实现导入 C++ 或 C#

java - JScrollPane 不适用于 JList

java.lang.RuntimeException : Failure delivering result ResultInfo{who=null, request=131074,结果=-1,data=Intent {(有额外内容)}}到 Activity

Java - 需要扩展Applet,但已经继承了另一个类