📅  最后修改于: 2023-12-03 15:38:45.893000             🧑  作者: Mango
在 Java 中,可以使用 JFrame 类来创建一个窗口程序。而在这个窗口中输出文本信息是很常见的需求。下面介绍一些如何在 JFrame 中输出文本的方法。
一个常见的方法是在 JFrame 中添加一个文本标签 JLabel,然后设置其文本。可以使用下面的代码创建并添加一个 JLabel 到 JFrame 中:
JFrame frame = new JFrame("My JFrame");
JLabel label = new JLabel("Hello, World!");
frame.add(label);
如果需要显示多行文本,可以使用 JTextArea,示例代码如下:
JTextArea textArea = new JTextArea();
textArea.append("Hello, World!\n");
textArea.append("This is a new line.");
frame.add(textArea);
注意,使用 JTextArea 需要设置其大小和位置。
Java 中的 System 类有三个标准输出流:System.out、System.err 和 System.in。我们可以将标准输出流之一添加到 JTextArea 中,以便在 JFrame 中输出文本信息。
示例代码如下:
JTextArea textArea = new JTextArea();
PrintStream printStream = new PrintStream(new CustomOutputStream(textArea));
System.setOut(printStream);
System.setErr(printStream);
其中 CustomOutputStream 是一个自定义的 OutputStream,用于将输出流重定向到 JTextArea 中。下面是 CustomOutputStream 的代码:
public class CustomOutputStream extends OutputStream {
private JTextArea textArea;
public CustomOutputStream(JTextArea textArea) {
this.textArea = textArea;
}
@Override
public void write(int b) throws IOException {
textArea.append(String.valueOf((char) b));
}
}
以上是几种在 JFrame 中输出文本的方法。通过添加 JLabel、JTextArea 或输出流,可以方便地在窗口程序中打印文本信息。