我想让JList和JTextArea在窗口中调整大小,但JPanel保持在中心位置。
答案 0 :(得分:2)
您的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对象。