![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
powerOn |
|
||||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Добавление картинки на JFrame. Задача программиста заключается не только в создании эффективной, но и элегантной и понятной пользователю программы. Не мало важную роль при этом несет графический интерфейс. Не для кого не секрет, что человек усваивает графическую информацию быстрее чем текстовую. Рисунки на форме помогают украсить интерфейс программы. А также сделать его более понятным. Данная статья посвящена добавлению рисунков на фрёйм с компонентами. Способ 1. Добавление картинки с использованием JLabel. Это вероятно самый простой способ, но в тоже время не самый гибкий, поскольку все управление за отображение рисунком возлагается на плечи JLabel. Чтобы добавить рисунок на JLabel существуют следующие методы. setIcon(Icon image); Конструкторы JLabel(Icon image); JLabel(Icon image, int horizontalAlignment); JLabel(String text, Icon icon, int horizontalAlignment); здесь: Icon image - добавляемая картинка. Она может быть без труда создана например след. образом: new javax.swing.ImageIcon("C:\\Documents and Settings\\All Users\\Документы\\Мои рисунки\\Образцы рисунков\\Водяные лилии.jpg"); String text - текст метки. int horizontalAlignment - тип горизонтального выравнивания. Может принимать след. значения: javax.swing.SwingConstants.CENTER - по центру, javax.swing.SwingConstants.LEFT - по левому краю, javax.swing.SwingConstants.RIGHT - по правому краю. Плюсом данного способа является возможность добавть текстомый коментарий к рисунку, минусом - отстутствие управления размерами рикунка. Пример использования:
Способ 2. Создание JPanel c возможностью добавления картинки в качестве фона. Этот способ более гибкий, и практически ограничивается только нашей фантазией. Он заключается в том, что мы напишем подкласс для класса JPanel и переопределим его метод public void paint(Graphics g). Реализация нашего метода будет производить прорисовку картинки на панели. Более того, мы будем управлять размерами изображения, и подстраивать (вписывать) его под размеры JPanel. Но и это еще не все: Мы оставим возможность добавления дочерних компонентов на эту панель, и у нас получится что-то компоненты размещаются на "красивом" фоне. Вот пример такой панели:
А вот пример её использования:
Надеюсь что данная статья будет Вам полезна. На все вопросы постараюсь ответить. С Уважением MoonCat. |
||||||
|
|||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
А почему у PicturePanel layout установлен в null?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Это впринципе не несет какой-то функциональной нагрузки. Можно смело обойтись и без этой строки. Тогда Layout останется по умолчанию - FlowLayout. |
|||
|
||||
SoulKeeper |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 2 Всего: 15 |
Недавно возникла нужда в панельке с возможностью ресайза (функция zoom), для чего сначала была предпринята попытка использовать панельку со способа # 2 из темы в FAQ.
В результате тестов с использованием картинки размером 1024x768 и увеличении панели до 10000x10000 панелька №2 требовала не много не мало, 438 мб памяти ![]() В результате, как всегда, все оказалось проще простого ![]() Панелька:
Тест панельки:
Просьба к модераторам добавить в теме @ FAQ коментарий, т.к. она закрыта и я не могу этого сделать сам :( Это сообщение отредактировал(а) SoulKeeper - 23.4.2008, 10:27 Присоединённый файл ( Кол-во скачиваний: 32 ) ![]() |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Добавил. Хотя странно, тема вроде не закрыта. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |