Java 带有JList的JScrollPane不会在GridBagLayout中滚动

Java 带有JList的JScrollPane不会在GridBagLayout中滚动,java,swing,jscrollpane,jlist,gridbaglayout,Java,Swing,Jscrollpane,Jlist,Gridbaglayout,我在gridbaglayout的jscrollpanes中有几个Jlist。 1 Jlist中的条目数量超过Jlist可见区域的数量。 但是jscrollpane不提供滚动功能 我曾经将所有的JScrollPane封装在一个jpanel中,当时scrollpane提供了正确的滚动功能 我已将Jlist的首选大小设置为[0,0]。Jlist的布局正确。 我可以将JList的preferredsize设置为显式值,例如[80300]。这会导致JList部分可滚动。JLIst的实际大小(如果它完全可见

我在gridbaglayout的jscrollpanes中有几个Jlist。 1 Jlist中的条目数量超过Jlist可见区域的数量。 但是jscrollpane不提供滚动功能

我曾经将所有的JScrollPane封装在一个jpanel中,当时scrollpane提供了正确的滚动功能

我已将Jlist的首选大小设置为[0,0]。Jlist的布局正确。 我可以将JList的preferredsize设置为显式值,例如[80300]。这会导致JList部分可滚动。JLIst的实际大小(如果它完全可见的话)要长得多

不知何故,我猜想gridbaglayout正在调整我的Jlist的大小,Jlist无法为滚动窗格提供正确的大小


如何使JScrollPane中的gridbaglayout和Jlist协同工作?

不要设置
JScrollPane
内容的首选大小。为
JScrollPanes
设置首选大小。

Thx。我也有同样的问题,首选大小(重置为[0,0])解决了这个问题。

将Jlist的首选大小设置为“null”解决了这个问题。我还将Jscrollpane的首选大小设置为“null”。永远不要使用setXXSize(带有NOTNULL维度)。正如您所经历的,@WillamS消除了对组件内部簿记的干扰(通过将其置零)消除了问题:-)您是指新维度(0,0)?听起来很奇怪。。。因为设置任何NOTNULL值都会使默认计算短路(这是一件坏事!)