java - 滚动条用 VERTICAL_WRAP 覆盖 JList 的最后一行

标签 java swing scroll jlist

我想在水平线上布置一个 JList,并让它只水平滚动。我发现 list.setLayoutOrientation(JList.VERTICAL_WRAP); 如果项目足够少,它会很好用。但是,当列表需要滚动时,滚动条会覆盖列表的最后一行(也是唯一一行),因此您根本看不到它。我怎样才能避免这种情况?

我的测试代码:

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

结果:

List

最佳答案

强制滚动 Pane 在其大小计算中包括水平滚动条:

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 );

关于java - 滚动条用 VERTICAL_WRAP 覆盖 JList 的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35832381/

相关文章:

java - Android 13 - 访问 PDF 或其他类型文件的权限

java - 为什么我不能通过另一个 jFrame 将项目添加到 jComboBox?

java - 与网页通信

iphone - 仅显示几张图像,滚动不顺畅

android - 在所有应用程序中以编程方式滚动 android

java - 是正六边形内的一点

java - OpenClover 未运行 - 错误

java - 使用不同的键盘输入

java - JMenuBar不会出现在JFrame中

meteor - 使用 Meteor 无限滚动