可滚动文本不依赖于文本长度

时间:2013-04-27 16:59:30

标签: java swing jscrollpane jtextpane scrollable

我正在创建一个带有常量宽度的侧边栏的GUI,我想添加一个Scrollable文本,将文本添加到JTextPane中,所有这些都添加到JPanel PanelList中。

问题是它会自动调整到最长字符串的长度,因此可滚动条总是显示整个文本 - 这不是我正在寻找的。

拥有此代码:

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个字符并且能够滚动?

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

1 个答案:

答案 0 :(得分:3)

  

我需要调用哪种方法才能显示JTextPane的20个字符

JTextPane不支持此概念。

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

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

这将创建一个包含5行和20列的文本区域。列不精确,因为每个字符的宽度都不同。如果你只需要20个字符,那么你需要使用等宽字体。