JTextArea:居中对齐

Posted

技术标签:

【中文标题】JTextArea:居中对齐【英文标题】:JTextArea: Center Alignment 【发布时间】:2021-06-01 02:05:46 【问题描述】:

我正在尝试用 java 制作一个计算器程序,但我不确定如何在我的 JTextArea 中将文本居中。我试过搜索谷歌和 YouTube,但我什么也没找到。这是我的源代码:

import javax.swing.*;
import java.awt.*;

public class Sect1 extends JTextArea
    public static final Dimension ss = Toolkit.getDefaultToolkit().getScreenSize();
    
    public Sect1()
        this.setBounds(ss.width / 4, ss.height / 5, 100, 100);
        this.setLineWrap(true);
        this.setWrapStyleWord(true);
    

【问题讨论】:

你为什么使用 JTextArea?通常,计算器将结果显示在单行上,这意味着您使用 JTextField。 JTextField 允许您将文本水平居中。您还可以使用 JTextPane,它允许您将文本水平居中。 这是一个表格计算器,所以用户输入 10 : 20 然后 1 : x 然后计算机会说 x = 2 我仍然建议输入是 JTextField,然后您可以将结果输出到 JTextArea。有关使用两个组件的基本示例,请参阅:How to Use Text Fields。 跳过 JTextArea 中的文本居中。完成您的项目,如果您有时间,请返回居中文本。此外,表格计算器左对齐输出。 好吧,我这就写完。 【参考方案1】:

您可能希望考虑使用 JTextField 在单行中输入文本并将其内容居中使用:

setHorizontalAlignment(JTextField.CENTER);

但是,如果您需要 JTextArea 之类的东西来引入多行文本,请使用 JTextPane 或其子类 JEditorPane,它可以让您对书面文本进行更多的自定义和控制。

用于在 JTextPane 中居中文本:

JTextPane textPane = new JTextPane();

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

【讨论】:

以上是关于JTextArea:居中对齐的主要内容,如果未能解决你的问题,请参考以下文章

如何清除 JTextArea?

如何在 Java GUI 中设置 JTextArea 的自动滚动?

Java:JTextArea类

jTextArea如何加滚动条

JTextArea 到 ArrayList<String> 的行

更改 JTextArea 中的文本选择类型