gpt4 book ai didi

java - 如何在 JTextArea 中格式化文本

转载 作者:行者123 更新时间:2023-11-30 10:21:12 25 4
gpt4 key购买 nike

我正在尝试输出多行文本来创建 ASCII 艺术。但是当我使用 JFrame 和 JTextArea 时,它没有正确排列。我正在尝试打印出 Merry Christmas in ASCII art但是当我在新窗口中打印出来时 The characters do not line up to form the words这是我目前的代码(ASCII 艺术中会有一些无用的字符):

public class LanguageChristmas  {


public static void main(String args[]) {
UIManager.put("swing.boldMetal", Boolean.FALSE);
JFrame f = new JFrame("Merry Christmas");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
JTextArea text = new JTextArea(100,50);
{
text.append(" _____ _________ .__ .__ __ "+ "\n");
text.append(" / \\ __________________ ___.__. \\_ ___ \\| |_________|__| _______/ |_ _____ _____ ______ / \\ " + "\n");
text.append(" / \\ / \\_/ __ \\_ __ \\_ __ < | | / \\ \\/| | \\_ __ \\ |/ ___/\\ __\\/ \\\\__ \\ / ___/ / \\ / " + "\n");
text.append("/ Y \\ ___/| | \\/| | \\/\\___ | \\ \\___| Y \\ | \\/ |\\___ \\ | | | Y Y \\/ __ \\_\\___ \\ / Y " + "\n");
text.append("\\____|__ /\\___ >__| |__| / ____| \\______ /___| /__| |__/____ > |__| |__|_| (____ /____ > " + "\n");
text.append(" \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ " + "\n");

}
JScrollPane pane = new JScrollPane(text);
pane.setPreferredSize(new Dimension(500,400));
f.add("Center", pane);
f.pack();
f.setVisible(true);
}
}`

我四处寻找,没有找到解决这个问题的办法。任何帮助都是有用的。

最佳答案

问题是,默认情况下,文本区域使用可变宽度字体。将字体更改为等宽字体将解决问题,例如

   text.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));

关于java - 如何在 JTextArea 中格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com