您只需要更改默认输出…

public static void main(String[] args) throws UnsupportedEncodingException

{

ByteArrayOutputStream bos = new ByteArrayOutputStream();

System.setOut(new PrintStream(bos));

System.out.println("outputing an example");

JOptionPane.showMessageDialog(null, "Captured: " + bos.toString("UTF-8"));

}

public static void main(String[] args) throws UnsupportedEncodingException

{

CapturePane capturePane = new CapturePane();

System.setOut(new PrintStream(new StreamCapturer("STDOUT", capturePane, System.out)));

System.out.println("Output test");

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

frame.add(capturePane);

frame.setSize(200, 200);

frame.setLocationRelativeTo(null);

frame.setVisible(true);

System.out.println("More output test");

}

public static class CapturePane extends JPanel implements Consumer {

private JLabel output;

public CapturePane() {

setLayout(new BorderLayout());

output = new JLabel("");

add(new JScrollPane(output));

}

@Override

public void appendText(final String text) {

if (EventQueue.isDispatchThread()) {

output.setText(output.getText() + text + "
");

} else {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

appendText(text);

}

});

}

}

}

public interface Consumer {

public void appendText(String text);

}

public static class StreamCapturer extends OutputStream {

private StringBuilder buffer;

private String prefix;

private Consumer consumer;

private PrintStream old;

public StreamCapturer(String prefix, Consumer consumer, PrintStream old) {

this.prefix = prefix;

buffer = new StringBuilder(128);

buffer.append("[").append(prefix).append("] ");

this.old = old;

this.consumer = consumer;

}

@Override

public void write(int b) throws IOException {

char c = (char) b;

String value = Character.toString(c);

buffer.append(value);

if (value.equals("

")) {

consumer.appendText(buffer.toString());

buffer.delete(0, buffer.length());

buffer.append("[").append(prefix).append("] ");

}

old.print(c);

}

}

java输出重定向gui_Java – 将system.out.println重定向到JLabel相关推荐

  1. Java基础学习之用System.out.println()输出中文字符串乱码问题

    问题描述: 在学习"java基本数据类型"相关知识点过程中,使用不同文本编辑器编写java源代码文件在cmd控制台中编译和运行过程中多次出现乱码情况. 电脑操作系统:win10 企 ...

  2. java基本输入类型数据System.out.println()或System.out.print()

    转载于:https://www.cnblogs.com/yihujiu/p/5990204.html

  3. java 里面write,java 中 System.out.println()和System.out.write()的区别

    java 中 System.out.println()和System.out.write()的区别. 这两个函数一个是System.out.write()输出字符流,System.out.printl ...

  4. java 输出数据类型_输入输出和java数据类型

    一.输入有两种方式. 1.使用Scanner. 使用时要在开始声明引用import  java.util.Scanner包.然后定义Scanner对象: Scanner  input=new Scan ...

  5. java 输出文件到mac路径_Java 中几种获取文件路径的方式

    原标题:Java 中几种获取文件路径的方式 1. 前言 Java开发中我们经常要获取文件的路径,比如读取配置文件等等.今天我们就关于文件的路径和如何读取文件简单地探讨一下. 2. 文件的路径 文件的路 ...

  6. java输出数组中出现的次数最多的那个及次数

    总结:理解每一个定义的变量 package com.aini;//一组数据,要求统计出最大值出现了多少次 public class Xd {public static void main(String ...

  7. Java输出一个菱形(数字符号都可)

    前面写了一篇关于等腰三角形的文章,这一片相当于是等腰三角形的进阶版,菱形可以拆分为两部分,上半部分和下半部分分别是两个等腰三角形.拆分起来更容易去理解~ 有两种方式可以解决! 方式一代码如下: pub ...

  8. system.out.println 函数使用

    System.out.println快捷键 syso+ALT+/ +: 链接作用 "": 固定字符用引号引起来,引号之外格式化输出对应得值 public class Test {p ...

  9. 慎用System.out.println!!!

    初学者一般在开发中或者调试bug的时候,都会习惯性的使用System.out.println语句,输出到控制台中,观察数据是否正常.开发或者调试完毕,很可能就忘记删除,直接就发布到生产中去了. 问题导 ...

最新文章

  1. 【bzoj5020】[THUWC 2017]在美妙的数学王国中畅游 泰勒展开+LCT
  2. 2.MyBatis 动态SQL
  3. 模态框在IE下的问题,即position:fixed在IE下不兼容的处理方式
  4. 工欲善其事必先利其器——web调试工具firebug
  5. Py之Matplotlib:python包之Matplotlib库图表绘制经验总结(中英文字体修改、横坐标文字进行横/纵向显示、控制坐标轴范围等)之详细攻略
  6. 快速部署-01-docker
  7. 大牛推荐的10本学习 Python 的好书
  8. 网易云音乐工程师,亲自揭晓消息队列改造之路! | 技术头条
  9. wamp 403 禁止访问
  10. 中国计算机学会推荐国际学术期刊--数据库/数据挖掘/内容检索
  11. java泛型与集合中文版,第8章java泛型与集合类.doc
  12. 为什么在使用m2e时Eclipse WTP不发布库
  13. 如何在手机上将图片转换为文字
  14. Android模仿新浪微博(自定义ListView下拉刷新)
  15. 用好知晓云,从此不再「网抑云」
  16. 【Linux】共享内存
  17. ROS:*.bag.active恢复
  18. 自大--萨旦最偏爱的原罪
  19. 老虎棒子鸡”试水有米iOS推荐墙,10天收入近5千元
  20. Win10 如何隐藏控制面板里面的BitLocker 驱动器加密功能

热门文章

  1. iphone退款申请教程_【揭秘】朋友圈卖的iOS退款、王者荣耀0元撸点券教程
  2. 【英语学习】【Level 07】U05 Best Destination L5 Top choice
  3. 【英语学习】【Daily English】U04 Neighborhood L02 Would you mind if I used your ladder for a second?
  4. Intel 64/x86_64/x86/IA-32处理器串行化指令(1) - 概述
  5. Netty 5用户指南
  6. FTP服务器构建与维护,ftp服务器的搭建与三种访问途径
  7. mysql linux设置密码_Linux下第一次使用MySQL数据库,设置密码
  8. easyswoole数据库连接池_easyswoole orm配置数据库连接
  9. catia螺纹孔在二维图上不显示_螺钉的螺纹是搓牙加工的,那么螺母的螺纹是怎么加工的呢...
  10. vue后端框架mysql_vue框架之前后台交互、element-ui