【问题标题】:Centering Text in a JTextArea or JTextPane - Horizontal Text Alignment在 JTextArea 或 JTextPane 中居中文本 - 水平文本对齐
【发布时间】:2011-03-13 21:15:37
【问题描述】:

有没有办法像使用 JTextField 一样为 JTextArea 创建水平居中的文本?

setHorizontalAlignment(JTextField.CENTER);

有没有一种方法可以用多行文本区域完成同样的事情?我找不到使用 JTextArea 的方法,那么还有其他选择吗?文本窗格?如果有,怎么做?

【问题讨论】:

    标签: java swing jtextarea jtextpane


    【解决方案1】:

    您需要使用 JTextPane 并使用属性。以下内容应使所有文本居中:

    StyledDocument doc = textPane.getStyledDocument();
    SimpleAttributeSet center = new SimpleAttributeSet();
    StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);
    doc.setParagraphAttributes(0, doc.getLength(), center, false);
    

    编辑:

    据我所知,不支持垂直居中。以下是一些您可能会觉得有用的代码:Vertical Alignment of JTextPane

    【讨论】:

    • 如果我也想让它垂直居中呢?
    • 上面的代码没有转换问题。请注意,如果您使用的是 JEditorPane,则只有 StyledDocument 支持 setParagraphAttributes() 方法。您需要将 getDocument() 的结果转换为 StyledDocument。
    • 不确定上面的代码是如何工作的,但我需要制作 doc.setParagraphAttributes(center, false) 才能使其工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2017-05-17
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多