我想让 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 对象。
关于java - 为什么 JList 和 TextArea 组件不使用 GridBagLayout 调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204124/