Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2" -> 138

Технологии профаммирования на Java 2 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 — М.: Бином-Пресс, 2003. — 560 c.
Скачать (прямая ссылка): tehprogrammjava22003.pdf
Предыдущая << 1 .. 132 133 134 135 136 137 < 138 > 139 140 141 142 143 144 .. 250 >> Следующая

11 import j avax. swing. *; 12
13 public class SplashScreen (
14
15 private JWindow window;
16 private Timer timer; 17
18 Il Конструктор SplashScreen
19 public SplashScreen( Component component )
20 {
21 /I создание нового окна JWindow для экранной заставки
22 window = new JWindow(); 23
24 /I добавление компонента-параметра в окно JWindow
25 window.getContentPane().add( component );
26 /I дать возможность пользователю пропускать
27 Il заставху SplashScreen щелчком мыши
28 window.addMouseListener( 29
30 new MouseAdapter() {
31 Il при нажатии пользователем кнопки мыши
32 // на SplashScreen
33 // скрыть и закрыть окно JWindow
34 public void mousePressed( MouseEvent event J {
35 window.setVisible( false );
311
312
Глава 5
3 6 window.di spose();
37 }
38 } 39
40 ); /I конец обращения к addMouseListener
41 // установить размеры окна JWindow для заданного
42 // компонента Component
4 3 window.pack (); 44
45 tI получить размеры экрана пользователя
46 Dimension screenDimension =
47 Toolkit. getDefaultToolkit().getScreenSize(); 48
49 /I вычисление координат х и у для центрирования заставки
50 int width = window.getSize().width;
51 int height = window.getSize().height;
52 int X = ( screenDimension.width - width )12;
53 int у = ( screenDimension.height - height )12; 54
55 Il задание размеров и положения окна
56 window.setBounds( х, у, width, height ); 57
58 } Il конец конструктора SplashScreen 59
60 Il отобразить заставку в течение заданного времени
61 public void showSplash( int delay ) { 62
63 Il отображение окна
64 window.setvisible( true ); 65
66 Il создание и запуск нового таймера для удаления
67 // заставки SplashScreen после истечения времени задержки
68 timer = new Timer ( delay,
69 new ActionListener() { 70
71 public void actionPerformed( ActionEvent event )
72 {
73 Il скрытие и закрытие окна
74 window.setvisible( false );
75 window. dispose ();
76 timer . stop () ;
77 }
78 }
79 ); 80
81 timer. start () ;
82
83 )/1 конец метода showSplash
84 Il возврат true, если окно заставки SplashScreen является
85 // видимым
86 public boolean isVisible()
87 {
88 return window.isVisible();
89 }
90 )__
Рис. 5.29. Класс SplashScreen для отображения логотипа при запуске приложения (часть 1)
Практический пример. Создание приложения Java 2D
313
& Associates Inc.
Рис. 5.29. Класс SplashScreen для отображения логотипа при запуске приложения (часть 2)
Метод showSplash (строки 61-83) принимает в качестве целочисленного аргумента время отображения заставки SplashScreen в миллисекундах. В строке 64 окно JWindow делается видимым, а в строке 51 осуществляется переход текущего программного потока Thread в состояние сна на заданное время delay. После истечения времени задержки delay в строках 60-61 осуществляется скрытие и закрытие окна JWindow.
В этой главе мы рассмотрели достаточно серьезное приложение, которое использует архитектуру MVC и ряд популярных паттернов проектирования, таких как Observer, Factory Method, Template Method, State и Command. Мы также продемонстрировали, как приложение может хранить и извлекать информацию в виде XML-документов. Наше приложение для рисования использует богатый набор компонентов пользовательского интерфейса, предлагаемых интерфейсом Swing, а также мощные средства рисования, предлагаемые Java 2D. Возможности технологии перетаскивания позволяют пользователям передавать фигуры между рисунками и добавлять свои собственные изображения.
Мы и далее будем использовать паттерны проектирования и архитектуру MVC для построения примеров и приложений.
Упражнения для самоконтроля
5.1. Какая часть архитектуры модель-вид-контроллер обрабатывает ввод пользователя? Какие классы приложения Deitel Drawing реализуют эту часть MVC?
5.2. Какой интерфейс должен реализовывать класс, чтобы дать возможность экземплярам этого класса передавать данные с использованием технология перетаскивания?
5.3. Как в общем случае пользователь начинает операцию перетаскивания? Приведите пример.
5.4. Какой тип объекта уведомляет слушателя DragGestureListener, что пользователь осуществляет перетаскивание?
5.5. Как может слушатель DropTargetListener или DragSourseListener определить, какой тип данных содержит объект Transferable?
Ответы на упражнения для самоконтроля
5.1. В архитектуре MVC ввод пользователя обрабатывает контроллер. В приложении Deitel Drawing ввод пользователя посредством мыши обрабатывают подклассы класса MyShapeController. Класс DragAndDropController обрабатывает ввод пользователя посредством операций перетаскивания.
5.2. Класс, поддерживающий технологию перетаскивания, должен реализовывать интерфейс Transferable.
Глава с
j I**

5.3. Пользователь начинает операцию перетаскивания с помощью мыши. Например, на платформе Windows пользователь для перетаскивания нажимает кнопку мыши на перетаскиваемом объекте и перемещает его мышью.
5.4. Объект DragGestureRecognizer возбуждает событие DragGestureEvent для уведомления слушателя DragGestureListener, что пользователь начал перетаскивание.
Предыдущая << 1 .. 132 133 134 135 136 137 < 138 > 139 140 141 142 143 144 .. 250 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100