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

 

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

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

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

295 boolean allFramesClosed = true; 296
297 Il выбор и закрытие каждого из окон DrawinglnternalFrame
298 for ( int і = 0; і < frames.length; і++ ) {
299 DrawinglnternalFrame nextFrame =
300 ( DrawinglnternalFrame ) frames[ і ]; 301
302 11 выбор текущего окна DrawinglnternalFrame
303 try {
304 nextFrame.setSelected( true );
305 }
306 Il обработка исключения при выборе окна
307 // DrawinglnternalFrame
308 catch ( PropertyVetoException vetoException ) {
309 vetoException.printStackTrace();
310 }
311 Il закрытие окна DrawinglnternalFrame и обновление
312 /I переменной allFramesClosed
313 allFramesClosed = allFramesClosed && nextFrame. close();
314 } 315
316 // выход из приложения, только если все окна закрыты
317 if ( allFramesClosed )
318 System.exit ( 0 ); 319
320 } Il конец метода exitApplication 321
322 Il отображение стартового экрана приложения
323 public void showSplashScreen()
324 {
325 Il создание изображения Imagelcon для логотипа
326 Icon logolcon = new Imagelcon (
327 getClass().getResource( "images/deitellogo.png" ) ); 328
329 Il создание новой надписи JLabel для логотипа
330 JLabel logoLabel = new JLabel( logolcon );
310
Глава 5
331
332 I/ задание фонового цвета для надписи JLabel
333 logoLabel.setBackground( Color. white ); 334
335 Il задание границ стартового экрана
336 logoLabel.setBorder(
337 new MatteBorder( 5, 5, 5, 5, Color.black ) ); 338
339 Il сделать надпись logoLabel непрозрачной
340 logoLabel.setOpague( true ); 341
342 Il создание объекта SplashScreen для логотипа
343 SplashScreen ¦ new SplashScreen( logoLabel ); 344
345 Il отображение заставки SplashScreen в течение 3 секунд
346 SplashScreen.showSplash( 3000 ) ; 347
348 )11 конец метода showSplashScreen 349
350 // центрирование окна приложения на экране пользователя
351 private void centerWindowOnScreen()
352 {
353 Il получение размеров пользовательского экрана
354 Dimension screenDimension =
355 Toolkit.getDefaultToolkit().getScreenSize();
356 Il использовать ширину и высоту экрана, ширину и высоту
357 // окна приложения для центрирования окна приложения
358 // на экране
359 int width = getSizeO .width;
360 int height = getSize() . height;
361 int X = ( screenDimension.width - width )12;
362 int у = ( screenDimension.height - height )12; 363
364 Il размещение окна приложения по центру экрана
365 setBounds( х, у, width, height );
366 } 367
368 Il выполнение приложения
369 public static void main( String args[] )
370 {
371 new DeitelDrawing();
372 }
373 }
Рис. 5.28. Приложение DeitelDrawing. использующее многодокументный интерфейс для отображения и модификации рисунков
Метод createNewWindow (строки 216-247) создает новый объект класса DrawinglnternalFrame. Внутренний класс DrawinglnternalFrameListener (строки 250-285) отслеживает сообщения internaIFrameClosing и internalFrameActiva-ted. Меню File приложения Deitel Drawing содержит пункты меню JMenuItem для сохранения активного в данный момент рисунка. Когда окно DrawinglnternalFrame закрывается, в строках 263-264 действия saveAction и saveAsAction удаляются из пунктов меню saveMenuItem и saveAsMenuItem окна DrawinglnternalFrame. Когда окно DrawinglnternalFrame активизировано, в строках 277—283 вызы-
Практический пример. Создание приложения Java 2D
вается метод setAction класса JMenuItem, чтобы установить действия для пунктов меню saveMenuItem и saveAsMenuItem.
Метод exitApplication (строки 289-320) предлагает пользователю сохранить любые несохраненные рисунки перед выходом из приложения. В строке 292 вызывается метод getAHFrames класса JDesktopPane для получения массива Jlnter-nalFrame в приложении. В строке 313 вызывается метод close класса DrawinglnternalFrame, чтобы попытаться закрыть каждое из окон DrawinglnternalFrame в массиве. Метод close возвращает true, если окно DrawinglnternalFrame было успешно закрыто, и false в противном случае. В строке 313 накапливаются результаты закрытия каждого из окон DrawinglnternalFrame в виде булева значения all-FramesClosed. Если все окна DrawinglnternalFrame успешно закрыты, в строке 318 осуществляется выход из приложения. Если какое-либо из окон DrawinglnternalFrame не было закрыто, приложение предполагает, что пользователь отменил запрос на закрытие приложение.
Приложение Deitel Drawing отображает на экране логотип компании Deitel (класс SplashScreen, рис. 5.29) при загрузке приложения. Конструктор SplashScreen (строки 19-58) принимает в качестве аргумента компонент Component, подлежащий отображению. В строке 22 создается окно JWindow (без рамки), в котором отображается данный компонент. В строках 46-56 осуществляется центрирование окна заставки JWindow на экране пользователя.
1 // SplashScreen.java
2 // SplashScreen реализует статический метод showSplash для
3 // отображения начального экрана приложения.
4 package com.deitel.advjhtpl.drawing; 5
6 I/ Набор базовых пакетов Java
7 import java.awt.*;
8 import j ava.awt.event. *;
9
10 11 Пакеты расширений Java
Предыдущая << 1 .. 131 132 133 134 135 136 < 137 > 138 139 140 141 142 143 .. 250 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100