我想在水平线上布置一个 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);
结果:
最佳答案
强制滚动 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/