防止JList自动调整大小

时间:2012-11-28 08:45:11

标签: java swing user-interface jlist preferredsize

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

现在我在列表中添加了一些书籍:

JList with some books in it

如果我转到另一个标签然后回来,就会发生这种情况:

Resized 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自动调整大小?

1 个答案:

答案 0 :(得分:5)

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