Читаем Java 7 полностью

"

JOptionPane.QUE STION_ME S SAGE,

JOptionPane.YES_NO_CANCEL_OPTION, null, opts, opts[2]);

JDialog d = op.createDialog(this, " Собственное диалоговое окно"); d.setVisible(true);

Рис. 14.19. Собственное диалоговое окно
Окно с индикатором ProgressMonitor

Еще один вид диалоговых окон, предназначенный для слежения за протеканием какого-нибудь процесса, предоставляет класс ProgressMonitor. Окно этого класса показывает сообщение, индикатор-"градусник" — объект класса JProgressBar — и кнопки OK и Cancel.

Единственный конструктор класса

ProgressMonitor(Component parent, Object message, String note, int min, int max);

кроме ссылки parent на родительское окно, сообщения message, наименьшего min и наибольшего max значений "градусника" содержит параметр note. Это строка, значение которой можно менять во время ожидания методом setNote ( String).

Для смены значения индикатора выполняемый процесс должен обращаться к методу setProgress (int pos), задавая в нем текущее значение pos, лежащее между значением min и значением max. Это похоже на работу с классом JProgressBar, описанным в главе 11.

В листинге 14.13 приведен пример использования окна индикатора. Для изменения значения индикатора запущен простейший подпроцесс. Рисунок 14.20 показывает вывод программы листинга 14.13.

Листинг 14.13. Создание окна индикатора

import java.awt.*; import javax.swing.*;

public class Progress extends JFrame{

Progress(){

super(" Progress...");

final ProgressMonitor mon = new ProgressMonitor(this, "Идет процесс.", "Осталось ", 0, 100);

Runnable runnable = new Runnable(){

public void run(){

for (int i = 1; i < 100; i++){ try{

mon.setNote( "Осталось " + (100 — i) + " %"); mon.setProgress(i);

if (mon.isCanceled()){ mon.setProgress(100); break;

}

Thread.sleep(100);

}catch(InterruptedException e){}

}

mon.close();

}

};

Thread thread = new Thread(runnable); thread.start();

setSize(400, 400);

setDefaultCloseOperation(JFrame.EXIT ON CLOSE); setVisible(true);

}

public static void main(String[] args){ new Progress();

}

}

Рис. 14.20. Окно индикатора
В заключение нужно сказать, что следить за загрузкой большого входного потока класса Inputstream удобно с помощью специально разработанного фильтра входного потока — класса ProgressMonitorInputStream, расширяющего класс FilterInputStream.

Заключение

Все менеджеры размещения написаны полностью на языке Java, в состав Sun Java SE входят их исходные тексты. Если вы решили написать свой менеджер размещения, реализовав интерфейс LayoutManager или LayoutManager2, то посмотрите эти исходныетексты.

Вопросы для самопроверки

1. Что такое менеджер размещения?

2. Почему менеджеры размещения удобнее абсолютной расстановки компонентов?

3. В каких контейнерах можно установить менеджер размещения?

4. В каких компонентах можно установить менеджер размещения?

5. Почему менеджер размещения BorderLayout столь популярен?

6. Какой менеджер размещения установлен по умолчанию в окне класса JFrame?

7. Какой менеджер размещения установлен по умолчанию в классе JPanel?

8. Какой менеджер размещения установлен по умолчанию в классе JScrollPane?

9. Какой менеджер размещения установлен по умолчанию в классе JWindow?

10. Какой менеджер размещения установлен по умолчанию в классе JDialog?

11. Можно ли написать свой собственный менеджер размещения?

ГЛАВА 15

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных