0

http://pastebin.com/VaaTRsuf

我想让 JList 和 JTextArea 随窗口调整大小,但 JPanel 保持在中心。

4

1 回答 1

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 对象。

于 2012-02-09T01:24:17.573 回答