Я пытаюсь понять, как добавить индикатор выполнения, я могу создать его в графическом интерфейсе, который я реализую, и получить его, но даже после проверки через http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html. Я все еще не понимаю, как я могу установить метод как чтобы я мог создать индикатор выполнения для запуска метода. Пожалуйста, кто-нибудь попытается объяснить это мне или опубликует пример индикатора выполнения, который используется в графическом интерфейсе, при задании, заданном как метод. Благодарю.Как добавить индикатор выполнения?
ответ
Может быть, я могу помочь вам с некоторыми примерами кода:
public class SwingProgressBarExample extends JPanel {
JProgressBar pbar;
static final int MY_MINIMUM = 0;
static final int MY_MAXIMUM = 100;
public SwingProgressBarExample() {
// initialize Progress Bar
pbar = new JProgressBar();
pbar.setMinimum(MY_MINIMUM);
pbar.setMaximum(MY_MAXIMUM);
// add to JPanel
add(pbar);
}
public void updateBar(int newValue) {
pbar.setValue(newValue);
}
public static void main(String args[]) {
final SwingProgressBarExample it = new SwingProgressBarExample();
JFrame frame = new JFrame("Progress Bar Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(it);
frame.pack();
frame.setVisible(true);
// run a loop to demonstrate raising
for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) {
final int percent = i;
try {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
it.updateBar(percent);
}
});
java.lang.Thread.sleep(100);
} catch (InterruptedException e) {
;
}
}
}
}
Ваш вопрос немного расплывчатый, но мне кажется, что вы хотите, чтобы индикатор выполнения показывал прогресс для определенного метода работы, который я назову методом «work()». К сожалению, нет способа просто передать ссылку на ваш метод на индикатор выполнения - ваш метод должен явно указывать индикатор выполнения, что показывать. Вот что я хотел бы сделать:
сделать ссылки прогресс бар, имеющихся в наличии для работы() - либо передать его в качестве аргумента для работы(), или предоставить акцесора, что ваш код в работе() может вызывать чтобы получить ссылку на индикатор выполнения.
Внутри работы(), после того как вы получили ссылку на индикатор выполнения (который я назову «pb», вызовите pb.setMinimum (0) и pb.setMaximum (n), где n - это число . шаги ваш метод должен пройти через
Как ваш метод завершает каждый шаг, вызовите pb.setValue (pb.getValue() + 1);
в конце вашего метода, вызовите Pb. setValue (0), для сброса индикатора выполнения перед возвратом.
, если вы хотите, чтобы ваш индикатор выполнения отображал сообщение String, вам сначала нужно вызвать pb.setStringPainted (true), а затем последующие вызовы pb.setString (строка) будут отображаться на панели выполнения.
См. my answer on another SO question, который содержит пример JProgressBar
, который обновляется с использованием SwingWorker
. SwingWorker
используется для выполнения долгого задания в фоновом режиме (в случае примера это просто обычный Thread.sleep
) и сообщать о ходе через определенные промежутки времени.
Я также настоятельно рекомендую взглянуть на Swing concurrency tutorial для получения дополнительной информации о том, почему вы должны использовать SwingWorker
при выполнении длительных задач, которые мешают пользовательскому интерфейсу.
Аналогичный пример, как один я отправил доступен в Swing tutorial about JProgressBar
s, который также стоит посмотреть на
- 1. Как добавить индикатор выполнения
- 2. Добавить индикатор выполнения
- 3. Как добавить индикатор выполнения бутстрапа?
- 4. Добавить индикатор выполнения для загрузчика
- 5. Android - Добавить индикатор выполнения WebView
- 6. Как добавить индикатор выполнения в UIAlertController?
- 7. Как добавить индикатор выполнения в tab2 webView
- 8. Как добавить индикатор выполнения в WWW :: Механизировать?
- 9. Как добавить пользовательский индикатор выполнения в wix
- 10. Как добавить индикатор выполнения в FFMPEG android
- 11. Как добавить индикатор выполнения в ионном приложении
- 12. Как добавить индикатор выполнения песни в SoundManager2?
- 13. Как добавить индикатор выполнения в python?
- 14. Как добавить индикатор выполнения для webview
- 15. Как настроить индикатор выполнения и индикатор выполнения javaFx?
- 16. Как замедлить индикатор выполнения?
- 17. Как обновить индикатор выполнения?
- 18. Как сделать индикатор выполнения
- 19. Как создать индикатор выполнения
- 20. Как установить индикатор выполнения
- 21. Как настроить индикатор выполнения
- 22. как сделать индикатор выполнения
- 23. Как скрыть индикатор выполнения?
- 24. как установить индикатор выполнения
- 25. Как обновить индикатор выполнения?
- 26. Как реализовать индикатор выполнения
- 27. Как показать индикатор выполнения
- 28. C# добавить индикатор выполнения в textBox
- 29. Добавить индикатор выполнения на панели навигации
- 30. добавить пользовательский индикатор выполнения в андроиде webview
Один из ответа на этот возможный дубликат [Может ли индикатор выполнения быть использован в классе за пределами основного?] (http://stackoverflow.com/questions/4637215/can-a-progress-bar-be-used-in-a-class-outside- основной) может помочь. – trashgod
Не понимаю. Почему вы хотите ** создать индикатор выполнения для запуска метода ** (как вы сказали)? Целью индикатора выполнения является предоставление пользовательской информации о выполняемой задаче. Таким образом, задача, указанная в документе oracle doc, относится к потоку, который будет управлять индикатором выполнения. Итак, создайте свой индикатор выполнения, используя swing worker (как указано в вашей ссылке), а затем в вашей (длинной?) Задаче обновите ход бара. Метод 'doInBackground()' SwingWorker используется для управления индикатором выполнения. Я советую вам снова взглянуть на ваш балет оракула, объяснение довольно ясное и примеры повторного использования. Удачи! –