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

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

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

我不明白的是,包含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自动调整大小?

最佳答案

根据您要归档的内容,可以使用 JList#setPrototypeCellValue JList#setFixedCellWidth 。这些将反馈到PeferredScrollableViewportSize方法中,这将影响滚动窗格

07-24 20:20