我正在尝试使用gridbagayout对齐jtabbedpane和滚动窗格。我试图将它们垂直对齐。但是,结果是水平的。有人为什么会这样吗?谢谢。
这是实际结果:
这是我的代码:
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/