2013-12-05 1 views
0

У меня есть задание относительно Java NIO и Thread. Я должен написать программу с этими четырьмя важными способностями: копировать, вырезать, переименовывать и удалять. Я сделал 4 класса для каждой части проекта. Все они распространяются Runnable и в перспективе я использовал код, как это:Процент выполненного проекта

fc = new JFileChooser(); 
fc.showOpenDialog(Copy.this); 
File f1 = fc.getSelectedFile(); 
fc.showOpenDialog(Copy.this); 
File f2 = fc.getSelectedFile(); 
if(copyFile(f1, f2)){ 
    System.out.println("File Copied"); 
} 

fc это поле JFileChooser класса и у меня есть mainFrame, которые имеют 4 кнопки и каждый из них начинает угрозу от каждого класса. Я не знаю о своем пути, и я понятия не имею, как это должно быть. Я смотрел два видеоролика о многопоточности, и я понятия не имею, как эта программа может быть тупиком или как она может быть запущена, и моя самая большая проблема заключается в том, что я хочу иметь JProgressBar при копировании файлов, удалении файлов и резке файлов и я понятия не имею, как я могу узнать об этих уровнях в программе, чтобы сделать все возможное с JProgressBar. это весь проект: https://www.mediafire.com/?yyw8jg1xncfp2xn

+0

Я не уверен, что именно вы спрашиваете. Вам нужно знать, как запускать новые потоки в java? Как скопировать файл? Как удалить файл? Как обрезать файл? –

+0

Мои основные функции выполняются правильно. У меня проблема с JProgressBar, эта программа будет протестирована в разных условиях, так что знаете ли вы, что проблемы могут возникать? –

ответ

1

Чтобы получить значение, необходимое для обновления JProgressBar самых простого способа будет иметь нить контролировать размер ваших целевых файлов и сравнить их с оригиналом. вы можете сделать это с помощью f1.length() и f2.length(). сравнивая эти 2 значения, вы сможете определить статус текущего действия, будет ли он удалять, копировать или обрезать размер файла. альтернативно, вам нужно будет иметь дескриптор вашего JProgressBar в каждой из ваших функций, например copyFile(...), и оттуда вы можете обновить индикатор выполнения на основе итерации в цикле. Для более детального ответа мне нужно будет увидеть остальную часть кода.

+0

Ваш ответ мне очень помог, спасибо, я загрузил весь проект: https://www.mediafire.com/?yyw8jg1xncfp2xn –