Java ProgressMonitorInputStream с использованием существующего JProgressBar
Я просто играю с ProgressMonitorInputStream Java для мониторинга данных, когда они проходят через BufferedInputStream. Вот код, который я сейчас пытаюсь:
InputStream in = new BufferedInputStream(
new ProgressMonitorInputStream(
new JFrame(),"Scanning",new FileInputStream(dir.getSearchInputFile())));
Это прекрасно работает, и появляется новое окно JFrame с индикатором выполнения, который отображает ход потока ввода.
Есть ли способ получить ProgressMonitorInputstream для обновления существующего JProgressBar, существующего в другом JFrame?
Я пробовал различные методы, такие как передача JProgressBar с помощью конструктора или попытка указать кадр в параметрах. Каждый раз, когда я пытаюсь, я просто получаю новый JFrame.
Я все об этом ошибаюсь?
Любой вклад будет принята с благодарностью.
Спасибо
1 ответ
SwingWorker
чей прогресс отслеживается, не важно, кто слушает. Просто реализуйте PropertyChangeListener
интерфейс в другом кадре и добавить слушателя к работнику, как показано в ProgressMonitorDemo
,
Приложение: В качестве конкретного примера, добавьте индикатор прогресса в демо:
private JProgressBar bar = new JProgressBar();
Добавьте его в конструктор панели:
this.add(bar);
Обновите его в панели propertyChange()
слушатель:
bar.setValue(progress);