Изтегляте и преглеждате изображения растерни

В този раздел, ние даде пример за самостоятелен Java приложение, което може да изтеглите и показване в прозореца файлове растерни графики GIF формат и GPG.

Малко теория

Работа с графични файлове с помощта на стандартния интерфейс софтуер Windows обикновено води до много трудности за програмисти. Те трябва първо да свалите файла с изображението в паметта, а след това направи разбор заглавията, извършване на декомпресия, изберете и прилагане на цветовата палитра.

Програмистите създават Java самостоятелни приложения, са в по-добра позиция - на тяхно разположение са удобни часове, предназначени за работа с GIF и JPG файлови формати.

Ако вашето приложение има нужда да се показва в растерни графики на прозорците, които са в досиетата, то е достатъчно, за да се създаде обект от класа на изображението, а след това ще го покаже в прозореца с помощта на стандартни методи.

Ето как да се реши на първата част от този проблем - зареди графичен файл:

Тук за първи път се получи препратка към набора от инструменти за обслужване клас, наричайки метод getDefaultToolkit, а след това използвайте метод GetImage, дефинирани в този клас. В този случай, ние мине този метод път към местната графичен файл C: \ снимки \ mypic.jpg.

За избор заявление файл може да показва стандартния диалогов прозорец класа FileDialog.

Що се отнася до втория проблем - показване на каченото изображение в прозореца на приложението, а след това може да бъде решен с помощта на метод drawImage.

Описание пример

В главния прозорец на нашата самостоятелно приложение има меню File с Open линия и Exit (фиг. 1).

Фиг. 1. Основният прозорец

Използването на низ Open, можете да изберете и качите файл, за да се покаже всеки графичен притежаващ GIF или JPG формат. съответния диалогов панел избор на файл е показано на фиг. 2.

Фиг. 2. На дисплея на избор на файл диалоговия панел

Моля, имайте предвид, че ние сме ограничени от порядъка на потребителското GIF и JPG тип файл, да се подбере подходящата съдържанието на полето "Име на файл" на.

Помислете за изходния код на приложението.

Основният клас за кандидатстване

В основния клас на нашата молба, ние създаваме прозорец клас FrameWindow и го показва:

клас FrameWindow

FrameWindow клас е определено в нашата молба към Frame базовия клас и изпълнява три интерфейси:

ActionListener интерфейс и WindowListener прилага, съответно, за да се справят събития от менюто и събитията, които се случва, когато даден потребител се опита да затвори главния прозорец на кандидатстване. ComponentListener интерфейс трябва да се проследяват промените в основния прозорец.

Следващите четири полета, както в класната стая FrameWindow за връзки към менюто и нейните редове:

Това изображение е съставено в клас панел кутия imgViewer намира в НК прозорец:

Програмата също така създава клас обект MediaTracker, предназначен да се изчака приключването на мишката избраното изображение:

Дизайнер FrameWindow клас

Конструкторът Първото нещо FrameWindow клас определя заглавието на основния прозорец за кандидатстване и размера на този прозорец:

Освен това, той генерира менюто:

свържете манипулатори на събитието на лентата с менюта:

След това, в менюто се намира в главния прозорец на приложение:

Последната стъпка - създаване обработват събитие, свързано с приключването на основния прозорец на приложението и да промените размера му:

метод actionPerformed клас FrameWindow

Когато потребителят избира Работно време: от линията на меню File, методът на FileOpen се нарича, файлове за изтегляне и показва графично представяне:

Избирането на Exit ред от същото меню води до приключване на заявлението.

FileOpen метод на FrameWindow клас

На първо място метод FileOpen показва стандартен диалогов прозорец за избор на файл:

Моля, имайте предвид, че сме ограничени в списъка на файловете, които се показват в този панел, като посочите маска, за да изберете файлове, като setFile.

Пълният път до файла пишем szCurrentFilename поле и се показва в заглавната част на основния прозорец:

В следващата стъпка, ние се зареди графичния образ от файл, създаване на обект от клас на снимката:

След това, ние чакаме, докато процесът на зареждане:

Преди показване на съдържанието на изтегления файл, ние проверяваме поле SP:

Ако по-рано през прозореца на приложението е бил качен друга снимка, ние премахваме, преди да заредите нов контейнер от него SP ScrollPane клас.

Тогава ние се създаде нов контейнер и да зададете размера си до размера на основния прозорец:

Създаден контейнер се добавя към прозореца на приложението, използвайки BorderLayout режим поставяне на компонент:

Изображението е съставено в прозорец панел imgViewer, който се създава, както следва:

Имайте предвид, че тук ние питаме размера на панела, равна на размера на заредената графиката.

След този клас imgViewer панел се добавя към класа на стъкло на прозорец ScrollPane:

извършваме задължителен компонент разположение, отнасящи се до тази система, за да Мениджър Layout за правилните размери на контейнера настройки:

метод componentResized клас FrameWindow

Когато потребителят преоразмерява главния прозорец на приложението, метод componentResized изпълнява Преуреждането и преначертае SP контейнери и IV:

componentShown метод клас FrameWindow

componentShown метод се нарича, когато основния прозорец на приложението картиране:

Имаме тя изпълнява същите стъпки като просто обсъжда метод componentResized.

windowClosing метод клас FrameWindow

Този метод се нарича, когато потребителят се опита да затвори главния прозорец на кандидатстване. Нашата прилагане на метода на попълване на заявлението:

Други методи на клас FrameWindow

В FrameWindow клас дефинира няколко метода, които не правят нищо, но са необходими за пълнотата на изпълнението на съответните интерфейси:

клас imgViewer

Клас imgViewer създаден на базата на класа на панела:

В класа сме определили две области:

Първият от тези магазини позоваване на изображението, а вторият - на размера на прозореца на прозорец, предава чрез втори параметър на конструктора.

Ето как тези полета се инициализират с конструктора:

боя метод клас imgViewer

метод боя чертае графично изображение в горния ляв ъгъл на панела:

Други методи на клас imgViewer

Необходими са следните методи за правилната работа на системата за поставяне компонент в JDK версия 1.0 и 1.1:

Те просто се върне размера на панела.