禁用 jscrollpane 中的水平滚动
2022-09-02 20:21:47
我有一个,我想有一个固定的宽度。它应该只垂直滚动,当我调整窗口大小时,内容应该自动重新排列。我认为应该有一个类似的方法,但找不到它。JScrollPane
FlowLayout
setEnableHorizontalScroll(false)
有什么简单的方法可以做到这一点吗?
我有一个,我想有一个固定的宽度。它应该只垂直滚动,当我调整窗口大小时,内容应该自动重新排列。我认为应该有一个类似的方法,但找不到它。JScrollPane
FlowLayout
setEnableHorizontalScroll(false)
有什么简单的方法可以做到这一点吗?
您可以使用:
import static javax.swing.ScrollPaneConstants.*;
// ...
JScrollPane.setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_NEVER);
...但这只是阻止水平滚动条被显示。
要使内容自动重新排列,将取决于内容是什么。a 或 将自动为您执行此操作(无需上述代码)。JTextPane
JEditorPane
最后我发现了如何,请看这个非常简短的例子,不需要高级技巧:
public class MyTest extends JFrame {
public static void main(String[] args) {
MyTest test = new MyTest();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setSize(300, 200);
test.setVisible(true);
}
public MyTest() {
String[] data = {
"Arlo", "Cosmo", "Elmo", "Hugo",
"Jethro", "Laszlo", "Milo", "Nemo",
"Otto", "Ringo", "Rocco", "Rollo"
};
JList list = new JList(data);
list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
list.setVisibleRowCount(0);
JScrollPane scroll = new JScrollPane(list);
this.add(scroll);
}
}
改编自Sun的教程