【问题标题】:JTextArea: Center AlignmentJTextArea:居中对齐
【发布时间】: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 中的文本居中。完成您的项目,如果您有时间,请返回居中文本。此外,表格计算器左对齐输出。
  • 好吧,我这就写完。

标签: java swing center jtextarea center-align


【解决方案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);

【讨论】:

    猜你喜欢
    • 2013-06-14
    • 2011-03-13
    • 2015-07-25
    • 1970-01-01
    • 2011-03-13
    • 2016-08-17
    • 2011-11-29
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多