Рассмотрим теперь такой вопрос. Что же нам надо сделать, если у нас в нашем приложении используются разного рода ресурсы, а не только классы. Как их тоже упаковать в наш упакованный файл и как в дальнейшем их вызывать. Для этого чтобы рассмотреть эти вопросы, изменим наше приложение таким образом, чтобы на нем рисовать не только кружочки, но и какие-либо изображения. Например, иконки. Сдвинемся для этого при помощи ползунка ниже и там, где у нас происходит определение класса Panel, введем еще одно поле класса Image.
Для этого напишем, таким образом, private. Далее пусть это будет класс ImageIcon, поскольку загружать будем иконки, и пусть это у нас будет массив, состоящий из нескольких элементов. Назовем этот массив im, далее равняется, и прямо здесь же определим все элементы этого массива. Фигурные скобки, далее щелкнем на клавише Enter.Теперь new, ImageIcon, далее скобка и внутри кавычек напишем имя этой иконки. Пусть это будет balll точка gif. Этот файл мы уже заранее поместили в нашу текущую папку. Закрыть кавычки. Закрыть скобку. Далее запятая. Теперь введем еще несколько таких же иконок. Для этого выделим вот это. Правая кнопка мыши и Сору.
Вставим сюда. Правая кнопка мыши и Paste. Вместо balll у нас будет ball2, далее запятая. Enter. Следующая иконка. Правая кнопка мыши и Paste. Здесь единицу переправим на тройку. Далее закрыть фигурные скобки. Точка с запятой. А теперь, эти загруженные иконки используем внутри нашего приложения, там, где мы отрисовываем наш рисунок. Для этого сдвинемся чуть ниже. Щелкнем здесь на клавише Enter.
Далее выведем определение "Эллипс 2D", из отрисовки нашей окружности. Для этого выделим вот этот текст и потащим его чуть выше. Здесь же напишем, таким образом, Эллипс 2D. Пусть этот объект будет просто "E", равняется, в конце, конечно же, точка с запятой и далее вот здесь напишем "E", чтобы возвратит к своему первоначальному виду, чтобы целостность вот этого куска программы не нарушалась.
Теперь сделаем так, чтобы вот эта окружность рисовалась только в одном случае, а в остальных случаях рисовались бы наши иконки. Для этого введем здесь оператор IF, далее скобка, далее I по модулю возьмем, например, 4 и в одном случае из вот этих 4 будем рисовать вот эту окружность. Закрыть скобку. И далее вот этот оператор g2fitt. А в противном случае, щелкнем здесь на клавише Enter, введем здесь else, и далее в противном случае будем рисовать наши иконки, которые находятся в нашем массиве im. Поэтому напишем, таким образом, g2 точка DrawImage, обрисовать рисунок, далее скобка. Рисунок нам нужно получить из массива im. Квадратные скобки, внутри которых напишем номер i и далее деление по модулю на 4, опять-таки. Закрыть квадратные скобки, точка и его метод getImage, поскольку на самом деле у нас здесь находится объект типа ImageIcon, а в DrawImage нам нужно использовать именно Image.
И в результате получаем, что если i по модулю в 4 у нас равняется, 0, 1 или 2, будут отрисовываться вот эти иконки из этих трех изображений, а если она равняется 3, тогда в этом случае у нас должна отрисовываться окружность по старому стилю. Ну, конечно же, здесь должно быть равно не 4, а 3. Теперь же запятая, Enter. Далее нам понадобятся координаты Х и Y нашего эллипса. И именно в этом месте мы и будем рисовать нашу иконку. Ну, сначала, конечно, нам надо преобразование типа, к типу integer. Далее "e", точка GetX, скобки, запятая. Теперь то же самое по координате Y, преобразование к целому типу, поскольку GetX и GetY нам возвращает действительные числа, а не целые. "E" точка GetY на этот раз. Далее скобки. Запятая. Теперь получим ширину и высоту нашего эллипса, для того чтобы наше изображение, так сказать, растягивалось, чтобы покрывать целиком это место.
Опять-таки преобразование к целому типу int. Далее "E", точка getWidth, получить ширину. Скобки, запятая. Опять преобразование к целому типу int. "E", наш эллипс, на этот раз getHeight, получить высоту, скобки, запятая, и далее напишем 0, поскольку следить за процессом загрузки мы, конечно же, не будем. Далее закрыть скобку, точка с запятой. Запустим теперь наше приложение и посмотрим, что у нас получилось. Для этого Tools, далее Compile Java. Сначала, конечно же, скомпилируем. Компиляция прошла успешно. Теперь Tools. Далее Run Java Application, запустим наше приложение.
Вот оно появилось перед нами и, щелкая на нем, мы на этот раз можем видеть, что рисуются то иконки, то вот такие просто окружности и разного цвета. Иконки у нас представляют собой вот такие шарики. И таким образом, мы можем заполнять наш фрейм. Можем удалить какие-либо из них. Ну, все остальное по-старому, за исключением того, что наряду с окружностями, у нас сейчас выводятся на экран и вот такие иконки.
Закроем теперь наше приложение. Закроем и консольное окно тоже. И мы опять в нашем текстовом редакторе, в котором отметим, что теперь в комплект нашего приложения, наряду с файлами, с расширением Класс, еще теперь входят и вот эти три гидовских файла. И, конечно же, при архивации нам это обязательно надо учесть. Для того чтобы учесть это обстоятельство немножко изменим тот процесс, при помощи которого мы загружаем вот этот файл.
Для этого здесь напишем немножко по-другому. А именно, MyPanel точка. Далее Класс, точка, и далее getResource, далее скобка, конечно же, если мы тут вставляем скобку, нужна еще одна закрывающая скобка. И теперь объясним, что же здесь происходит. Тут происходит следующее обстоятельство. Мы указываем нашему компилятору, что вот этот ресурс, нам надо искать в той же директории, что и класс MyPanel. Просто-напросто вот этим методом getResource создается URL адрес вот этого файла. Скопируем теперь вот этот кусочек текста, чтобы его заново не писать. Выделим. Правая кнопка мыши и Сору. Встанем сюда. Правая кнопка мыши и Paste. Встанем сюда тоже. Правая кнопка мыши и Paste. И теперь вставим еще две закрывающие соответствующие скобки. Скомпилируем теперь приложение наше и посмотрим, что получилось. Для этого Tools, далее Compile Java.
Компиляция прошла успешно. Теперь Tools, далее Run Java Application, запустим наше приложение. Ну, как мы видим, щелкая, опять получаем все то же самое, ничего в нашем приложении, конечно же, не изменилось. Поскольку мы пока еще работаем с ним, так сказать, в обычном режиме, а не в упакованном. Теперь же закроем его. Закроем и консольное окно тоже. Теперь попробуем все наши классы вместе с вот этими ресурсами, изображениями упаковать в один файл и там запустить, поскольку доступ к вот этим трем файлам изображений сделали мы при помощи указания на место нашего класса, то сейчас мы это уже правомочны сделать.
Вот теперь мы опять запустили наш файл в менеджер, в котором теперь и проведем архивацию наших файлов в файл My.Jar. Для этого напишем опять Jar в командной строке. Далее его опции CFM, как мы писали ранее. Мы, конечно же, упаковываем вместе с манифестом, для того чтобы можно было его запускать с командной строки. Далее Му точка Jar, имя нашего файла после упаковки. Далее имя файла с манифестом. Это у нас манифест. Точка MF. Этот файл нами уже был приготовлен ранее.
Теперь те файлы, которые надо упаковать. Это, конечно же, звездочка точка класс. Все файлы с классами и далее все файлы с изображениями. Звездочка точка ГИФ, щелкнем теперь на клавише Enter. Архивация прошла вполне успешно. А теперь сдвинемся ниже и там, где у нас находится файл с архивом, My.Jar, как мы видим, его размер уже увеличился, поскольку туда вставились и три файла с изображениями. Его теперь скопируем в правое окно. Скопируем туда, где у нас находится специальная папка, в которой всего два файла, файл архива и файл с Web страницей. Щелкнем теперь на клавише F5, скопировать, ОК, дальше Owerwrite, конечно же, заменить, и теперь перейдем на правую сторону и попробуем запустить этот файл сначала с командной строки.
Для этого напишем My Jar и щелкнем на клавише Enter. И вот, как мы видим, у нас запустилось наше приложение. И. щелкая на нем, мы можем опять-таки рисовать то изображение вот этих шариков, то соответствующие кружочки. Закроем теперь это приложение и попробуем то же самое запустить в режиме аплета, в режиме Web страницы. Для этого щелкнем теперь на Enter, находясь на Web странице. Вот наша Web страница загрузилась перед нами и, щелкая на нем, мы опять-таки можем рисовать все наши кружочки и шарики. Мы можем их сдвигать в какую-либо сторону. Ну, все, как обычно. Закроем теперь наш аплит. Для этого щелкнем вот на этом крестике и перейдем на наш текстовый редактор.
⇐Архивы jar | TeachPro WEB-дизайн | Всплывающие окна в апплетах создание кнопки⇒