ProgressMonitorInputStream не работает? - PullRequest
1 голос
/ 15 января 2012

Я пытаюсь в простой программе передачи файлов на основе сокетов включить ProgressMonitorInputStream, моя передача файлов работает нормально.Но progressMonitor никогда не появляется.
Я отправляю файл с сервера на клиент, когда он подключается, мой файл передается отлично, но просто не понимаю, почему ProgressMonitor не появляется.1003 * Я искал несколько примеров, они использовали «this» вместо «new Jframe ()» в PMIS, но, поскольку я был внутри 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 
}    

1 Ответ

3 голосов
/ 15 января 2012
I searched some examples, they used 'this' instead of 'new Jframe()' in PMIS

У вас есть перечитанное руководство по Как использовать индикаторы выполнения , есть базовое описание для ProgressMonitorInputStream

Swing является однопоточным , и если вы хотите перейти с progress, то вам нужно перенаправить этот Stream в BackroundTask, учебное пособие по JProgressBar Implelemnts SwingWorker , есть еще один вариант - обернуть его в Runnable#Thread, но в этом случае вывод в GUI должен быть заключен в invokeLater()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...