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:居中对齐的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java GUI 中设置 JTextArea 的自动滚动?