晚上好,我是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,但它没有用。谢谢。
答案 0 :(得分:1)
您必须将标准输出流更改为JTextArea。这是一个非常好的例子here,它向您展示了如何做到这一点!
基本上,您要做的是创建自己的自定义OutputStream 并覆盖write(int)方法,该方法在通过流打印字节时调用。您将文本附加到write方法中的TextArea。流本身是通过创建一个新的PrintStream实例创建的,其中您使用自定义输出流作为构造函数参数。
答案 1 :(得分:1)
追加工作正常。
t1.append(i+"");
会做的。