Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание своих GUI компонентов 
:(
    Опции темы
Altar
Дата 16.7.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 10.7.2005

Репутация: нет
Всего: нет



Существует ли простой способ создавать свои визуальные компоненты(и на основе swing ), описывать свойства, события и т.д. Может есть редактор какой-нибудь? smile
А может есть также дружественный способ прорисовку делать?

Это сообщение отредактировал(а) Altar - 16.7.2005, 10:52
PM MAIL   Вверх
batigoal
Дата 16.7.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Цитата(Altar @ 16.7.2005, 11:51)
Существует ли простой способ создавать свои визуальные компоненты(и на основе swing ),

Собственно, наследуешь любой из компонентов, хоть сам JComponent. Вот тебе пример своего компонента на основе JPanel:
Код

public class MyPanel extends JPanel
{
    private JButton button;
    private JPanel panel;

    MyPanel()
    {
        this.setLayout(new GridLayout(2,1));

        panel = new JPanel();
        panel.setName("line");
        this.add(panel);

        button = new JButton("Button");
        this.add(button);
    }
}

Обычно это делается с использованием технологии JavaBeans. Тогда потом можешь свой компонент даже в графический редактор интерфейса запихать.

Цитата(Altar @ 16.7.2005, 11:51)
Может есть редактор какой-нибудь?

Графические редакторы есть, но лучше ручками.

Цитата(Altar @ 16.7.2005, 11:51)
А может есть также дружественный способ прорисовку делать?

Не понял.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Altar
Дата 16.7.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 10.7.2005

Репутация: нет
Всего: нет



Цитата

Обычно это делается с использованием технологии JavaBeans. Тогда потом можешь свой компонент даже в графический редактор интерфейса запихать.

Можно подробнее(+ очень коротко о Java Beans) короче хочу свою я библиотеку сделать,
но не особо представляю как изменить вид моего нового Button на основе старого.

Цитата

Графические редакторы есть, но лучше ручками.

Ручками всё хорошо, да всё же о каких редакторах реч?

Это сообщение отредактировал(а) Altar - 16.7.2005, 11:28
PM MAIL   Вверх
batigoal
Дата 16.7.2005, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Вообще говоря, JavaBeans описаны в любой фундаментальной книге по Java. (Например, у Ноутона и Шилдта - "Java 2. Full reference")

Идея заключается в том, что мы делаем компонент, то есть класс, который изолирован и самодостаточен. Его поля закапсулированы, и все взаимодействие осуществляется только через методы. Они могут быть как визуальными (то, что интересует тебя), так и невизуальными, то есть просто представлять из себя обычный объект. Есть еще Enterprise Java Beans, но это сооовсем другая степь.
Я сейчас посмотрел в FAQ, и удивился, что там нет статьи по этому поводу. Я этим займусь, в двух словах тут не расскажешь.

Цитата(Altar @ 16.7.2005, 12:22)
не особо представляю как изменить вид моего нового Button на основе старого.

Что ты имеешь в виду? Добавить картинку, помнять шрифт и т.д.?

Цитата(Altar @ 16.7.2005, 12:22)
Ручками всё хорошо, да всё же о каких редакторах реч?

Например, графические редакторы, встроенные в среды разработки (JBuilder, IDEA и так далее). Но это не очень хорошо - они обычно неудобны и, главное, зависимы от среды, т.е. непереносимы. Поэтому рекомендую обойтись ручным написанием, где это возможно.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Altar
Дата 16.7.2005, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 10.7.2005

Репутация: нет
Всего: нет



Цитата
Что ты имеешь в виду? Добавить картинку, помнять шрифт и т.д.?

Я хочу создать свою библиотеку на подобие swing, чтобы в ней были все стандартные компоненты, нужные мне. Не только кнопки, но и JList, JListbar (надеюсь понятно, а то по памяти пишу и не помню точные названия), JProgressbar и т.д. То есть, компоненты должны будут выглядеть так как нужно мне. Одно дело на C++Builder это делать, другое на незнакомой пока мне Java. Например я не знаю как нарисовать и описать собственный выпадающий список, который должен быть похож на виноградную лозу.
Вот вроде всё подробно описал. smile

PM MAIL   Вверх
batigoal
Дата 16.7.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Altar
Угу. Понятно. Задачка интересная и хорошая, но непростая.

Возможно, имеет смысл пойти по такому пути. В Java GUI существует такое понятие, как Look and Feel (L&F). Оно отвечает за стиль отображения уже существующих компонентов. Про это есть инфа тут: http://java.sun.com/docs/books/tutorial/ui.../misc/plaf.html
Существуют уже готовые L&F, может, и попадется подходящая.

А вообще, подробный рассказ про ручную прорисовку компонентов есть здесь:
http://java.sun.com/docs/books/tutorial/ui...ting/index.html


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Altar
Дата 17.7.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 10.7.2005

Репутация: нет
Всего: нет



Ещё предстоит конечно разобраться (эх 11 лет убитых зря на английский) с этой статейкой, Кода в ней маловато что-то. Выходит что я могу сделать прорисовку, а затем добавить пару строчек в уже созданный код, и компоненты будут выглядеть уже по другому?
Я правильно понимаю?
PM MAIL   Вверх
batigoal
Дата 17.7.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Если говорить о варианте L&F, то да. Главное - найти или сделать этот L&F, а применить его - нет проблем.

Если идти по второму пути, то, как я понимаю, нужно переопределять метод
Код

protected void paintComponent(Graphics g)

Это будет уже не пара строк.


Цитата(Altar @ 17.7.2005, 11:22)
эх 11 лет убитых зря на английский

Соооовсем не зря smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Altar
Дата 17.7.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 10.7.2005

Репутация: нет
Всего: нет



Попробую я пожалуй 1 способ, возможно этого хватит. Эх... Тяжело октябрёнку smile
Спасибо!

Это сообщение отредактировал(а) Altar - 17.7.2005, 10:53
PM MAIL   Вверх
batigoal
Дата 17.7.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Всегда пожалуйста. Приходи к нам еще, всегда рады новым людям и новым вопросам. smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.