java – 防止JList自动调整大小
作者:互联网
我在JScrollPane中有一个JList,它放在一个JPanel(BorderLayout.CENTER)中,然后放在另一个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方法,这将影响滚动窗格
标签:java,user-interface,swing,jlist,preferredsize 来源: https://codeday.me/bug/20190520/1144050.html