【问题标题】:System.out.println output to JTextAreaSystem.out.println 输出到 JTextArea
【发布时间】:2009-11-27 16:22:05
【问题描述】:

我希望每次调用 System.out.println 以附加到给定的 JTextArea,而不必更改对 System.out.println 的所有调用...这可能吗?

谢谢。

【问题讨论】:

    标签: java console jtextarea


    【解决方案1】:

    自 1.5 起的 Java 版本具有 System.setOut(),允许您安装自己的 PrintStream。只需创建一个简单的OutputStream,它会附加它通过write() 获得的数据,然后将其包装在PrintStream 中并安装它。

    【讨论】:

      【解决方案2】:

      你可以使用jTextArea.append("Your String") 方法来做到这一点

      【讨论】:

        【解决方案3】:

        我认为没有简单的方法。正是出于这种原因,我通常会尽量避免在我的代码中调用System.out。如果你有像(比如)MyUtil.myOutput() 这样的方法,那么你可以进行一次更改并将其重新路由到你想要的位置

        【讨论】:

        • 是的,它更多地用于处理我在这里拥有的一些遗留问题.. 确定如果我会从 stratch 制作它,我会使用 log4j
        【解决方案4】:

        我想你可能会使用某种形式的AspectJ 来做到这一点,但我认为这可能是矫枉过正。我要做的是创建一个既可以打印又可以追加的方法。

        public void printAndAppend(String text) {
              System.out.println(text);
              textArea.append(text);
        }
        

        然后您可以对System.out.println 进行全局查找和替换,然后将其替换为printAndAppend

        【讨论】:

          猜你喜欢
          • 2013-01-20
          • 1970-01-01
          • 2011-02-12
          • 1970-01-01
          • 2012-03-16
          • 1970-01-01
          • 2014-08-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多