我正在尝试一个简单的基于套接字的文件传输程序来包含一个ProgressMonitorInputStream,我的文件传输工作正常。但是progressMonitor从来没有出现过。
我正在从服务器向客户端发送文件,当它连接时,我的文件传输得很好,但就是不明白为什么ProgressMonitor没有出现。
我搜索了一些示例,他们在PMIS中使用'this‘而不是'new Jframe()’,但由于我在main()中,它不允许我这样做。
//client
InputStream is = sock.getInputStream();
BufferedInputStream bis = new BufferedInputStream(
new ProgressMonitorInputStream(new JFrame(),"reading",is));
while ((read = bis.read(buffer,0,buffer.length)) != -1) {
//read from socket...now write to file
} 发布于 2012-01-15 20:06:42
I searched some examples, they used 'this' instead of 'new Jframe()' in PMIS你有关于How to Use Progress Bars的re_read教程,还有关于ProgressMonitorInputStream的基本描述
Swing是single threaded,如果要使用progress移动,则必须将此Stream重定向到BackroundTask,教程关于JProgressBar实现SwingWorker,另一个选项是包装到Runnable#Thread,但在这种情况下,必须将图形用户界面的输出包装到invokeLater()中
https://stackoverflow.com/questions/8868909
复制相似问题