我在放在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方法中,这将影响滚动窗格