6

我在 JScrollPane 中有一个 JList,它放在 JPanel (BorderLayout.CENTER) 中,并将其放在另一个 JPanel 的 BorderLayout.EAST 中(这个 JPanel 的 CENTER 包含另一个 JPanel),整个 JPanel 放在 JTabbedPane 内。最初,它看起来像这样: 初始 JList GUI

现在我将一些书添加到列表中:

JList 里面有一些书

如果我转到另一个选项卡并返回,则会发生这种情况:

调整大小的 JList

我不明白的是,包含 JList 的 JPanel 设置了最小和最大大小:

JPanel listPanel = new JPanel();
listPanel.setLayout(new BorderLayout());
listPanel.add(new JScrollPane(bookList), BorderLayout.CENTER);
listPanel.setMinimumSize(listPanel.getPreferredSize());
listPanel.setMaximumSize(listPanel.getPreferredSize());
checkOutPanel.add(listPanel, BorderLayout.EAST);

如何防止 JList 自动调整大小?

4

1 回答 1

6

根据您尝试存档的内容,您可以使用JList#setPrototypeCellValueJList#setFixedCellWidth. 这些将反馈到将影响滚动窗格的 PeferredScrollableViewportSize 方法

于 2012-11-28T09:22:52.567 回答