【问题标题】:Scrollable text not depending on text length可滚动文本不取决于文本长度
【发布时间】:2013-04-27 16:59:29
【问题描述】:

我正在创建一个带有恒定宽度的侧边栏的 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 个字符并能够滚动?

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

【问题讨论】:

  • 您不希望出现滚动条吗?还是你想要它们?
  • 我确实想要滚动条
  • 我认为您需要JTextPane 到滚动窗格的视口
  • 它的解码代码是什么?此外,JScrollPane 构造函数不应该将引用的参数设置为视口吗?
  • 你可以试试this

标签: java swing jscrollpane jtextpane scrollable


【解决方案1】:

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

JTextPane 不支持这个概念。

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

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

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

【讨论】:

  • 谢谢,JTextArea 解决了我的问题,我不知道它的构造函数允许以某种方式设置可滚动视口的大小。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
相关资源
最近更新 更多