1

我正在创建一个带有恒定宽度的侧边栏的 GUI,我想添加一个可滚动的文本,将文本作为 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 个字符并能够滚动?

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

4

1 回答 1

3

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

AJTextPane不支持这个概念。

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

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

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

于 2013-04-27T18:34:39.007 回答