简体   繁体   English

滚动条覆盖了带有VERTICAL_WRAP的JList的最后一行

[英]Scroll bar covers last row of JList with VERTICAL_WRAP

I want to layout a JList on one line horizontally, and have it scroll only horizontally. 我想在一行水平布局JList ,并让它只水平滚动。 I've found list.setLayoutOrientation(JList.VERTICAL_WRAP); 我找到了list.setLayoutOrientation(JList.VERTICAL_WRAP); which works well if there are few enough items. 如果物品足够少,哪个效果很好。 However, when the list needs to scroll, the scrollbar covers the last (and only) row of the list, so you can't see it at all. 但是,当列表需要滚动时,滚动条会覆盖列表的最后一行(也是唯一一行),因此您根本看不到它。 How can I prevent this? 我怎么能阻止这个?

My test code: 我的测试代码:

JList<String> list = new JList<>("TIVFBJPAVUOHCVINPNYLMSMNNDUSHVSWUYUSNZXTYTXJMJPTISAVVYHOPBFIAXSUUQYYPVGAKEEWOTRCBWQWRXQTYJLCTTHTXPMZWDLQRRUZJSVWDMLYNRUDZXRTEJWAZUOBQCWNCYEPVCPXVWOGVZPOEKPWZZFDGZZGXPBFZQQVKFIXCYFTHRPJJMOYISEUCUTJGZQI".split("[A-D]"));
list.setLayoutOrientation(JList.VERTICAL_WRAP);
list.setVisibleRowCount(1);
frame.add(new JScrollPane(list), BorderLayout.NORTH);

The result: 结果:

名单

Force the scroll pane to include the horizontal scrollbar in its size calculation: 强制滚动窗格在其大小计算中包含水平滚动条:

JList<String> list = new JList<String>( ... );
list.setLayoutOrientation(JList.VERTICAL_WRAP);
list.setVisibleRowCount(1);
JScrollPane scrollPane = new JScrollPane( list );
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
frame.add( scrollPane );

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM