首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTextPane换行

JTextPane换行
EN

Stack Overflow用户
提问于 2011-08-23 11:43:55
回答 2查看 20.7K关注 0票数 10

JTextArea不同,JTextPane没有关闭换行的选项。我发现了一个在JTextPane中关闭换行的solution,但对于这样一个简单的问题来说,它似乎太冗长了。有没有更好的方法来做这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-23 11:53:35

参见No Wrap Text Pane。以下是链接中包含的代码。

代码语言:javascript
复制
JTextPane textPane = new JTextPane();
JPanel noWrapPanel = new JPanel( new BorderLayout() );
noWrapPanel.add( textPane );
JScrollPane scrollPane = new JScrollPane( noWrapPanel );
票数 12
EN

Stack Overflow用户

发布于 2017-12-15 03:37:53

No Wrap Text Pane还提供了另一种解决方案,它不需要将JTextPane包装在JPanel中,而是覆盖了getScrollableTracksViewportWidth()。我更喜欢这种解决方案,但它对我来说并不是很有效--我注意到,如果视区变得比JTextPane的最小宽度窄,仍然会发生换行。

我发现当视区太窄时,JEditorPane会重写getPreferredSize(),通过返回最小宽度而不是首选宽度来尝试“修复”问题。这可以通过再次重写getPreferredSize()来解决,说“不,真的-我们总是想要实际的首选大小”:

代码语言:javascript
复制
public class NoWrapJTextPane extends JTextPane {
    @Override
    public boolean getScrollableTracksViewportWidth() {
        // Only track viewport width when the viewport is wider than the preferred width
        return getUI().getPreferredSize(this).width 
            <= getParent().getSize().width;
    };

    @Override
    public Dimension getPreferredSize() {
        // Avoid substituting the minimum width for the preferred width when the viewport is too narrow
        return getUI().getPreferredSize(this);
    };
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7156038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档