Java 不取决于文本长度的可滚动文本

Java 不取决于文本长度的可滚动文本,java,swing,jscrollpane,jtextpane,scrollable,Java,Swing,Jscrollpane,Jtextpane,Scrollable,我正在创建一个具有恒定宽度的侧栏的GUI,我想添加一个可滚动的文本,将文本添加到JTextPane,所有这些都添加到JPanel面板列表中 问题是它会自动调整到最长字符串的长度,所以滚动条总是显示整个文本——这不是我想要的 有此代码: public PanelList(int size){ text = new JTextPane(); text.setEditable(false); text.setText("IwantthisStringt

我正在创建一个具有恒定宽度的侧栏的GUI,我想添加一个可滚动的文本,将文本添加到JTextPane,所有这些都添加到JPanel面板列表中

问题是它会自动调整到最长字符串的长度,所以滚动条总是显示整个文本——这不是我想要的

有此代码:

public PanelList(int size){

        text = new JTextPane();
        text.setEditable(false);
        text.setText("IwantthisStringtobeScrollable\n" +
                "ThisStringis30characterslength");
        JScrollPane scrollpane = new JScrollPane(text);
        scrollpane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollpane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
        this.add(scrollpane);

}
我必须调用什么方法才能只显示JTextPane的20个字符并能够滚动

编辑:滚动面板显示的宽度为参数大小的宽度

我必须调用什么方法才能只显示JTextPane的20个字符

JTextPane
不支持此概念

如果只显示简单文本(不需要多种字体或文本颜色),则可以使用
JTextArea
。然后你会做一些类似的事情:

JTextArea textArea = new JTextArea(5, 20);
JScrollPane scrollPane = new JScrollPane(textArea);

这将创建一个包含5行20列的文本区域。列不精确,因为每个字符的宽度都不同。如果您只需要20个字符,则需要使用单间距字体。

您不希望滚动条出现吗?或者你想要它们吗?我想要滚动条我想你需要
JTextPane
到滚动条的查看端口它的反编码是什么?另外,JScrollPane构造函数不应该将引用的参数设置为视口?您可以尝试一下,谢谢,JTextArea解决了我的问题,我不知道它的构造函数允许以某种方式设置可滚动视口的大小。非常感谢你。