我在用Swing做一个C/S的聊天系统,想实现在传输文件过程中显示进度条的功能。
在网上找了许多实例,但基本上是计数器、sleep()什么的,看了感觉没什么帮助。
我已经完成了文件传输的功能,就是进度条部分不知道怎么实现,稍微总结一下,
进度条是使用JProgressBar,或者ProgressMonitor其中之一。ProgressMonitor的
疑问是它一般是对文件进行读取,不难获取本地文件的大小,可以显示完成进度,
但是在网络传输中接收端就不能获取当前进度了。JPropressBar的问题在于它作
为一个组件必须添加到一个容器中,不能独立存在。我尝试了一些方法,在传文
件的线程中弄个JFrame,或者JDialog,把JPropressBar加进去,结果不是异常就
是阻塞。希望这里有相关经验的人给些指点,或者附点代码上来看看,谢谢!

解决方案 »

  1.   

    发送传输请求的时候  就加上文件大小  然后收到包的时候设置下JProgressBar问一下  你的传送文件是TCP 还是 UDP?
      

  2.   

    我用的TCP,就是socket流
    你说的方法是我提到的,出现了阻塞和异常
    不知道问题出在哪里,能给个代码看看吗
      

  3.   

    我有一个项目在Dev.java.net上有这个的。是一个类,做得不错。可以去看看。项目叫“sharelan”。
      

  4.   

    哦 TCP 不能跨内网 
    以前写过 应该没什么问题的 睡觉了 
    祝你好运
      

  5.   

    我想用JProgressBar可以,你们说的没错,我也正在按这个方法做
    只是有错误不知道如何处理,想参考一下类似的代码
      

  6.   

    用ProgressMonitorInputStream过滤器流,它可以自动弹出一个对话框,监视已经读取了多少流