В этой статье описывается реализация функций мониторинга прогресса компонентов качания Java. Поделитесь этим для вашей ссылки, следующим образом:
Пример 1:
Импорт java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.progressmonitor; import javax.swing.timer; открытый класс TestProgressmonitor {Timer Timer; public void init () {final SimuletTargetmi Target = new SimulateTargetmi (1000); // Выполнить много времени задачи, запустив поток Конечный поток TargetThread = New Thread (Target); TargetThread.Start (); // Создание диалога Progress Final ProgressMonitor Dialog = New ProgressMonitor (NULL, «В ожидании выполнения задачи, пожалуйста, не закрывайте окно до завершения задачи, в противном случае текущая операция будет отменена ...», «Завершено: 0,00%», 0, target.getAmount ()); // Создать таймер timer = новый таймер (300, new ActionListener () {public void actionPerformed (ActionEvent e) {// Установить соотношение завершения диалогового окна выполнения с текущей суммой завершения диалога диалога задачи. Диалоговое окно if (dialog.iscancell ()) {// Остановить таймер таймера.stop (); timer.start (); } public static void main (string [] args) {new TestProgressMonitor (). init (); }} // Симуляция времени, требующего много времени, commentaltargetmi реализует runnable {// текущее завершение задания частного летучего тока; // общий объем задачи частная сумма; public SimuletTargetmi (int umm) {current = 0; this.amount = сумма; } public int getAmount () {return Sutr; } public int getCurrent () {return current; } // Метод выполнения представляет процесс непрерывного выполнения задач public void run () {while (current <sumber) {try {thread.sleep (50); } catch (прерванная экспрессия e) {} current ++; }} public String getPercent () {return string.format ("%. 2f", 100,0 * current / summ) + "%"; }}Эффект бега:
Пример 2:
Импорт java.awt.flowlayout; импорт java.awt.font; import java.awt.event.actionevent; import java.awt.event.actionlistener; импорт java.awt.event.windowadapter; import java.awt.event.windowEvent; импорт javax.swing.bode.shipytout. javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; импорт javax.swing.jprogressbar; импорт javax.swing.timer; открытый класс testJProgressBar {jFrame frame = new jFrame ("www.vevb.com - Индикация текущего прогресса ..."); // Создать вертикальный планшний ход JProgressbar Bar = new JProgressBar (jprogressbar.horizontal); Jlabel tiplabel = new jlabel («tip:», jlabel.left); Jlabel contentlabel = new jlabel («Пожалуйста, не закрывайте окно до завершения задачи, в противном случае текущая операция будет отменена ...», jlabel.left); Jlabel satternlabel = new jlabel ("", jlabel.center); public void init () {frame.setLayout (new FlowLayout ()); Frame.SetReSizable (false); tiplabel.setfont (новый шрифт ("serif", font.plain, 14)); ContentLabel.SetFont (новый шрифт ("serif", font.plain, 14)); StatusLabel.SetFont (новый шрифт ("Serif", font.plain, 14)); Jpanel panel = new jpanel (); // fr5.setborder (новый название workborder ("boxlayout - y")); panel.setlayout (new boxlayout (panel, boxlayout.y_axis)); panel.add (tiplabel); panel.add (box.createverticalstrut (2)); panel.add (contentlabel); panel.add (box.createverticalstrut (7)); панель.add (бар); // panel.add (box.createverticalglue ()); panel.add (box.createverticalstrut (2)); panel.add (statuslabel); Frame.add (панель, 0); final SimuletTarget Target = new SimulateTarget (1000); // Выполнить задачу трудоемки, запустив поток конечный поток = новый поток (Target); thread.start (); // Установить процент завершения рисунка в брусном баре Progress Bar.setStringPainted (true); // bar.setpreferredsize (новое измерение (100, 18)); // Установить максимальные и минимальные значения панели хода, bar.setminimum (0); // Использование общей задачи в качестве максимального значения панели Prographing Bar.setMaximum (target.getAmount ()); final Timer timer = new Timer(300, new ActionListener() { public void actionPerformed(ActionEvent e) { // Set the value of the progress bar bar with the current completion amount of the task bar bar bar.setValue(target.getCurrent()); if (target.getAmount() <= target.getCurrent()) { statusLabel.setText("processing is completed,oh yes!"); }}}); timer.start (); Frame.SetLocationRelativeTo (null); Frame.setDefaultCloseoperation (jframe.dispose_on_close); // frame.setDefaultCloseoPeration (jframe.exit_on_close); frame.addwindowlistener (new windowdapter () {@override public void windowclose (windowevent e) {thread.interrupt (); timer.stop (); // Система выхода System.exit (0);}}); // Этот код устанавливает размер окна в соответствии с размещенными компонентами, чтобы он мог вместить все компоненты, которые вы размещали Frame.pack (); Frame.SetVisible (true); } public static void main (string [] args) {new TestJProgressBar (). init (); }} // Смодели по времени занятия классом задач Симулированное. // общий объем задачи частная сумма; public SimuletTarget (int out) {current = 0; this.amount = сумма; } public int getAmount () {return Sutr; } public int getCurrent () {return current; } // Метод выполнения представляет процесс непрерывного выполнения задач public void run () {while (current <sumber) {try {thread.sleep (20); } catch (прерванная экспрессия e) {} current ++; }} public String getPercent () {return string.format ("%. 1f", 100,0 * current / summ) + "%"; }}Результаты работы:
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.