System.out.Println到Java中的JTextArea [重复]

问题描述 投票:-2回答:2

这个问题在这里已有答案:

晚上好,我是Java新手。我有以下代码:

public class FrameENN extends JFrame {

JButton b1;
JTextArea t1;
JLabel l1;
String c;
eHandler handler = new eHandler();

public FrameENN(String s) {
    super(s);
    setLayout(new FlowLayout());
    b1 = new JButton("Get Result");
    t1 = new JTextArea(5, 25);
    l1 = new JLabel("");
    add(b1);
    add(t1);
    add(l1);
    b1.addActionListener(handler);
}

public class eHandler implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == b1) {

            for (int i = 0; i < 3; i++) {
                **System.out.println(i);**

            }

        }
    }

}

}

按下按钮在JTextArea中获取此System.out.println(i)时,我该怎么办?我尝试使用t1.append,但它没有用。谢谢。

java swing jtextarea system.out
2个回答
1
投票

附加工作正常。

t1.append(i+"");

会做。


1
投票

您必须将标准输出流更改为JTextArea。有一个非常好的例子here,告诉你如何做到这一点!

基本上,您要做的是创建自己的自定义OutputStream并覆盖write(int)方法,该方法在通过流打印字节时调用。您将文本附加到write方法中的TextArea。流本身是通过创建一个新的PrintStream实例创建的,其中您使用自定义输出流作为构造函数参数。

© www.soinside.com 2019 - 2024. All rights reserved.