换个说法:比如有一个copy文件的过程很长,想将copy过程显示在窗口中怎么实现?

解决方案 »

  1.   

    用消息框:
    JOption.showMessageDialog(this,"这里写你要显示的内容");
      

  2.   

    status = new JTextArea();
    status.append("这里写你要显示的内容");
      

  3.   

    System.out.println()
    这个时没有办法实现的,但是你可以通过变通的方法降低耦合性,并且实现要求。可以参考log4j的实现,或者看我写的小demo,需要的话留个mail即可
      

  4.   

    我个人认为println()中的参数都是诸如boolean,String等标准对象,因此,如果你要将System.out.println()中的内容显示在窗体中,直接将println()中的参数写进窗体中就可以了
      

  5.   

    //测试用代吗public class logTest {
    public static void main(String[] args){
    Log log = new Log();
    log.AddAppender(new ConsoleAppender());
    log.debug("哈哈哈哈哈哈!");
    }
    }//接口,用来提供输出项的抽象
    public interface Appender { public void println(Object obj);
    }//在Cosole进行输出
    public class ConsoleAppender implements Appender {
    public void println(Object obj) {
    System.out.println(obj);
    }}//用来替代System.out,可以指定不同的Appender,因此可以同时输出到Console,TextArea等任何你想要的地方
    public class Log {
    List lappender = new ArrayList();
    public void debug(Object obj){
    Iterator it = lappender.iterator();
    while(it.hasNext()){
    Appender app = (Appender)it.next();
    app.println(obj);
    }
    }
    public void info(Object obj){

    }
    public void AddAppender(Appender appen){
    this.lappender.add(appen);
    }
    public void RemoveAppender(Appender appen){
    this.lappender.add(appen);
    }
    }
    //简单示例,如何在textArea里面接到输出
    public class textAreaAppender extends JTextArea implements Appender{ /* (non-Javadoc)
     * @see com.gKarer.Appender#println(java.lang.Object)
     */
    public void println(Object obj) {
    this.append(obj.toString());
    }}同样你可以实现Appender接口,获得到各个地方的输出,甚至于mail,net Send,短信等等等等(当然这些都是需要相应支持的)