Java 为什么JList和TextArea组件不使用GridBagLayout调整大小?
Java 为什么JList和TextArea组件不使用GridBagLayout调整大小?,java,swing,layout-manager,gridbaglayout,Java,Swing,Layout Manager,Gridbaglayout,我想让JList和JTextArea随窗口调整大小,但JPanel保持在中间。您的LogView类扩展了JPanel,因此除非您更改它,否则它将使用JPanel的默认布局FlowLayout。使用容器的FlowLayout中保存的组件在容器更改大小时不会更改大小,因此,如果您想要此行为,您不需要组件侦听器——您只需要将LogView JPanel的布局管理器更改为BorderLayout或类似的允许其保存的组件扩展的东西,就是这样。一行代码: public LogView(final JFram
我想让JList和JTextArea随窗口调整大小,但JPanel保持在中间。您的LogView类扩展了JPanel,因此除非您更改它,否则它将使用JPanel的默认布局FlowLayout。使用容器的FlowLayout中保存的组件在容器更改大小时不会更改大小,因此,如果您想要此行为,您不需要组件侦听器——您只需要将LogView JPanel的布局管理器更改为BorderLayout或类似的允许其保存的组件扩展的东西,就是这样。一行代码:
public LogView(final JFrame contentPane) {
// .......
setLayout(new BorderLayout()); // add this, that's it
add(mainPanel);
}
另一个选项是去掉mainPanel,因为它看起来根本没有必要,将LogView对象的布局设置为GridBagLayout,并将组件直接添加到LogView对象