之前数据结构作业里遇到获取
System.out.print()
内容的需求找了好多只有这个可以用
# 完整通用代码
import java.io.ByteArrayOutputStream | |
import java.io.PrintStream | |
public class SystemOut{ | |
public static void outTest{ | |
ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024); | |
PrintStream cacheStream = new PrintStream(baoStream);// 临时输出 | |
PrintStream oldStream = System.out;// 缓存系统输出 | |
System.setOut(cacheStream); | |
System.out.print("...");// 不会打印到控制台 | |
String result = baoStream.toString();// 存放控制台输出的字符串 | |
System.setOut(oldStream);// 还原到系统输出 | |
System.out.println("result") | |
} | |
public static void main(String[] args){ | |
outTest(); | |
} | |
} |
# 我自己的作业需求
要求是写一个图形界面
以下是图形界面的按钮 1 的事件监听
// 按钮 1 事件监听,输出 DLR 算法遍历的序列 | |
jb1.addActionListener(new ActionListener() { | |
@Override | |
public void actionPerformed(ActionEvent e) { | |
ByteArrayOutputStream baoStream = new ByteArrayOutputStream(1024); | |
PrintStream cacheStream = new PrintStream(baoStream);// 临时输出 | |
PrintStream oldStream = System.out;// 缓存系统输出 | |
System.setOut(cacheStream);// 不打印到控制台 | |
bt.preRootTraverseL(T);// 这一行是本要打印到控制台的内容 | |
String result = baoStream.toString(); | |
tf.setText("DLR 算法遍历的序列:" + result); | |
} | |
}); |
其他只需要修改 bt.preRootTraverseL(T);
这一行打印到控制台的内容即可