0

我使用具有可变高度的文本区域和一些其他内容(示例代码中的组合框)填充窗口宽度。发生以下错误:
- 使用“innerPanel.setPreferredSize”时,当通过在文本区域中键入换行符或垂直调整窗口大小时,当文本区域高于窗口时,滚动条不会出现。
- 不使用“innerPanel.setPreferredSize”时,(如下示例代码注释所示),使用的swing元素在调整窗口宽度时会水平放大,但不会水平缩小。

JPanel innerPanel = new JPanel(new GridBagLayout());
JTextArea editArea = new JTextArea();
editArea.setLineWrap(true);
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1.;
innerPanel.add(editArea, gbc);
JComboBox combo = new JComboBox();
gbc.gridy = 1;
innerPanel.add(combo, gbc);
JScrollPane scroller = new JScrollPane(innerPanel,
  JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
  JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//innerPanel.setPreferredSize(new Dimension(50, 50));
JPanel outerPanel = new JPanel(new BorderLayout());
outerPanel.add(scroller);
frame.setContentPane(outerPanel);
4

0 回答 0