powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование визуальных классов. Как?
25 сообщений из 29, страница 1 из 2
Наследование визуальных классов. Как?
    #34471316
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нижайше прошу прощения за несуразность вопросов и несообразительность.
Ну, да вы же понимаете, я фоксовик. От некоторых людей нельзя требовать слишком
многого.

Пытаюсь сделать незатейливую программуську со SWING интерфейсом.
Для начала, отнаследовал все визуальные классы. Такие как JLabel, JTextBox и еже с ними.
Сами понимаете, с базовыми классами работать нельзя. Вдруг хозяин попросит
перекрасить все метки (JLabel) в зелёный или подсветить все JTextBox над которыми проходи мышка в красный. Ну не перелопачивать же весь проект?! А так, поправлю свой, отнаследованный от базового класс, и готово!
Но вот не получается подключить моих "наследников" так, что бы визуальный редактор форм их понимал (не знаю как). Т.е. если их оформить моих "наследников" как JavaBeans, то проблем у меня не будет (судя по всему). Но ведь и от наследников первого уровня (пусть оформленых как Java Beans), в реальной работе, понадобится опять делать наследников. И опять что ли делать JavaBean из JavaBean?
Вобщем, сори за многословность.
Как правильно наследовть визуальные классы, что бы IDE это понимали (их визуальные редакторы)?
Я пытаюсь работать с NetBean и Eclips. Если они убоги, то скажите с чем работать? И как? (в плане наследования визуальных классов).

ЗЫ
Может я слишком многого хочу?
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34471323
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxovikВдруг хозяин попросит
перекрасить все метки (JLabel) в зелёный или подсветить все JTextBox над которыми проходи мышка в красный. Ну не перелопачивать же весь проект?! А так, поправлю свой, отнаследованный от базового класс, и готово!

ИМХО, напрасный труд :) Классы - они ж инстансы имеют и свойства, глобальные настройки, а к ним относятся те, которые ты перечислил, можно хранить отдельно, скажем, в ресурс бандлах *.properties, и применять их в своей программе, тупо брать цвет из проперти и сетить в свой контрол, это ж всего лишь инстанс объекта, а не сам объект - не путай.
А еще есть такая штюка як LookAndFeel (LAF) - можно на свой стандартный интерфейс стандартными способами навертеть свой лук энд фил, программа может измениться вообще до неузнаваемости... И это совсем не переписывание контрола с идентичой функциональностью, но с другой мордой - это просто другая морда для стандартного контрола :)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34471345
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вай Три Ю, я старательно стараюсь ничего не путать.
Да действительно в ресурс бандлах можно хранить свойства чего угодно....

Ой, да ладно... спасибо что откликнулся! :-)
Продолжим...

>>>инстанс объекта, а не сам объект - не путай
Не согласен.
Инстанс объекта - есть сам объект. Но не класс. (может ты это имел ввиду)

мои примеры изменения поведения контроллов в готовом проекте это только примеры. Но и они
показывают, что никакие ресурс бандлы не обеспечат подсветку красным при пересечении курсора мышки (согласись, ведь это может сделать только некий метод, который в ресурс не загонишь). Всего предусмотреть невозможно - это раз. Два - Новый L&F писать ради пустякового изменения поведения котролла - это странно. В объектно-ориентированном программировании никто Наследования не отменял (как и инкапсуляции и полиморфизма), и не стоит его пытаться подменить ни делегатами, ни Лук энд Филами.
Вай Три Ю, скажи пожалуйста, что, визуальные редакторы Java IDE не понимают наследования?

PS
Надеюсь на ответ - НЕТ. ;-)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34471401
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxovik...Но и они
показывают, что никакие ресурс бандлы не обеспечат подсветку красным при пересечении курсора мышки (согласись, ведь это может сделать только некий метод, который в ресурс не загонишь)

блин, во-первых, для этого есть соответствующий лисенер, который ты прицпишь на свой контрол, а цвет ты можешь вытянуть из ресурс бандла в этом самом лисенере. Не буду я спорить, в конце концов я в свингах не спец, но все равно не пойму чем тебя не устраивают обычные компоненты и зачем тебе их именно наследовать. Может я чего-то не понимаю? Во-вторых посмотри еще вот тут http://java.sun.com/docs/books/tutorial/uiswing/components/model.html

А так да, эти ущербные визреды ничего толком не умеют :)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34471478
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxovik, тяжкое наследие фоксы? Просьте Вы это. Подобные подходы прото не применимы в Java.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34471633
z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
z
Гость
y3u foxovik...Но и они
показывают, что никакие ресурс бандлы не обеспечат подсветку красным при пересечении курсора мышки (согласись, ведь это может сделать только некий метод, который в ресурс не загонишь)

блин, во-первых, для этого есть соответствующий лисенер, который ты прицпишь на свой контрол, а цвет ты можешь вытянуть из ресурс бандла в этом самом лисенере. Не буду я спорить, в конце концов я в свингах не спец, но все равно не пойму чем тебя не устраивают обычные компоненты и зачем тебе их именно наследовать. Может я чего-то не понимаю? Во-вторых посмотри еще вот тут http://java.sun.com/docs/books/tutorial/uiswing/components/model.html

А так да, эти ущербные визреды ничего толком не умеют :)

есть только один базовый компонент Swing, который можно юзать без слез - JPanel
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472027
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 foxovik:

ООП != наследование. А даже очень наоборот. Делегирование часто выигрывает в гибкости. Для вашей задачи это самое то. Вам нужно не свой клас создать, а использовать Фабрику для создания к-тов. Эта фабрика и будет вешать нужные лиснеры и ставить свойства. Память подсказывает что VE эклипса генерял методы в которых можно было писать что нужно. Ну и соответственно в этих методах замените new TextBox() на JFactory.createTextbox().
Ну и неудержусь:
1. это не то чем надо заниматься - противоречит agile. You Aint Gonna Need It!!!
2. Редакторы - ф топку: FormLayout - выбор настоящих мужиков
3. Удачи на земле Жаба

остальным +1.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472184
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У фокспро один редактор формочек у жавих ИДЕ много разных раного качества. Один из лучших у JBuilder, там это достаточно легко. Единственное условие - вся инициализация должна быть в методе jbnit (по нему редактор рисует в своём окошке) ну и ещё по мелочи. Остальные какие пробовал менее удобные. Пробовал нетбинс, идею, какие-то в эклипсе
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472221
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы!
Я понял:
1. Визуальные редакторы для Явы пока не очень совершенны и поэтому в среде профессиональных разработчиков они редко используются. Более того, они не совместимы между разными IDE, что сводит их немногочисленные примущества к нулю и даже создаёт проблемы.
2. Мне надо обратить внимание на шаблон проектирования Фабрика классов. Я незаслуженно оставил эту парадигму без внимания.
3. Если мне нужны сложные переделки классов (для визуальных это: из JTextBox сделать ввод даты, сумм (как в калькуляторе), выбор из справочника...), то лучше делать их как JavaBeans (или спи..., в смысле, купить готовые), если мне надо использовать их в визуальных редакторах, или делать обычные насленики, но редакторами при создании UI не пользоваться (см. п.1.).
4. Простые доработки классов принято делать не наследованием а делегированием функциональности объектам исходного класса и настройкой свойств посредством Фабрики классов.

PS
2 fixxer
Ну чем это отличается от Фокса или C# или VB.NET?
В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. Что в лоб, что по лбу... :-)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472248
Anarion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1. Делегирование решает.
В качестве примитивов использую JPanel, которые вешаю на фрейм. Эти панельки могут содержать бесконечную композицию из компонентов, с которыми можно производить любые манипуляции.

А все визуальные редакторы от лукавого... Если, конечно, задачей не стоит накидать три поля и две кнопки для простой формочки.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472268
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА все визуальные редакторы от лукавого... Если, конечно, задачей не стоит накидать три поля и две кнопки для простой формочки.

можно где-то посмотреть на невиданые красоты ваших изделий?
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472291
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024 авторА все визуальные редакторы от лукавого... Если, конечно, задачей не стоит накидать три поля и две кнопки для простой формочки.

можно где-то посмотреть на невиданые красоты ваших изделий?

а на ваши?
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472450
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxovik
2 fixxer
Ну чем это отличается от Фокса или C# или VB.NET?
В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. Что в лоб, что по лбу... :-)

Не путайте кислое с пресным. Наследование и делегирование это просто два разных механизма расширения функциональности существующих классов. Говорить что где чаще/реже используется некорректно. Почитайте GoF, там в начале описана разница, преимущества и недостатки.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472483
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
y3uа на ваши?

Шутите?
Вот же: http://sss1024.googlepages.com/
Ох ленив, Java-программист, две ссылки нажать ленится.
Вот мы фоксовики - народ работящий :-)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472492
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerПочитайте GoF
Что почитать?
Сори... я не такой умный. GoF это что? (а главное, где?)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472509
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxovik fixxerПочитайте GoF
Что почитать?
Сори... я не такой умный. GoF это что? (а главное, где?)

Это я сорри. Просто привык, что большинство знакомо с этой книгой хотя бы понаслышке.
Э. Гамма Паттерны проектирования. Могу намылить.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472537
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста! Если можно!
Вот сюда: foxovik@mail.ru
А то я её на столе держал, держал, всё прочесть собирался... Да так и ушла сея книга куда-то.
А уж в электрическом-то виде...

Спасибо, огромное!!!
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472587
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer foxovik
2 fixxer
Ну чем это отличается от Фокса или C# или VB.NET?
В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. Что в лоб, что по лбу... :-)

Не путайте кислое с пресным. Наследование и делегирование это просто два разных механизма расширения функциональности существующих классов. Говорить что где чаще/реже используется некорректно. Почитайте GoF, там в начале описана разница, преимущества и недостатки.

Интересно, а каким образом GoF может помочь в данном случае?

Убедить, что RAD средства это скучно, а потому нужно писать код в ручную превращая его в нагромаждение изумительным образом взаимодействующих объектов?

Ну..., такой подход тоже имеет право на жизнь :)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472695
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs
Интересно, а каким образом GoF может помочь в данном случае?

Убедить, что RAD средства это скучно, а потому нужно писать код в ручную превращая его в нагромаждение изумительным образом взаимодействующих объектов?

Ну..., такой подход тоже имеет право на жизнь :)

Меня просто смутила формулировка:

foxovik
В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование.

А про RAD я ничего не говорил. :-)
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34472762
termit31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭ. Гамма Паттерны проектирования
Если не сложно, намыльте пожалуйста на erm31@yandex.ru
Спасибо.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34473033
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
termit31 авторЭ. Гамма Паттерны проектирования
Если не сложно, намыльте пожалуйста на erm31@yandex.ru
Спасибо.

тынц
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34473142
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxovik
3. Если мне нужны сложные переделки классов (для визуальных это: из JTextBox сделать ввод даты, сумм (как в калькуляторе), выбор из справочника...), то лучше делать их как JavaBeans (или спи..., в смысле, купить готовые), если мне надо использовать их в визуальных редакторах, или делать обычные насленики, но редакторами при создании UI не пользоваться (см. п.1.).


JFormattedTextField - только чур не капризничать
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34473338
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. http://www.instantiations.com/windowbuilderpro/default.htm

+ читайте правильные книги по современному ОО-проектированию. Это я к тому что использовать наследование чтобы обеспечить одинаковый цвет кнопок - это слишком сильно.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34473499
foxovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exppJFormattedTextField - только чур не капризничать

Ладно, не буду капризничать. Уговорили, задам я свойства JFormattedTextField и получу нечто пригодное для ввода даты, сумм, массы, объемов и т.п. ОК. Имею на форме вот такие четыре контрола.
А дальше, что делать? Ведь в приложении таких контролов десятки, если не сотни. Что каждому определять свойства? Да?
Что вы посоветуете? Фабрику, Наследование или ручное задание свойств при каждом употреблении JFormattedTextField. Или что-то ещё?

funikovyuriиспользовать наследование чтобы обеспечить одинаковый цвет кнопок - это слишком сильно.
ПОЧЕМУ?
Я иногда делаю наследование даже не переопределяя ни одного метода и ни одного свойства. Исключительно как задел на будующее. Скажем, объект ввода массы и объема могут быть разных классов но совершенно идентичными (масса и объем это разные сущности, хотя в конкретном приложении они могут быть сходными). Я делаю это потому, что в любой момент может потребоваться сделать их различными. И тогда достаточно подправить один класс и решение готово! А не лазить по всем формам и править свойства JFormattedTextField.
Почему этот подход никому не нравится из здесь присутствующих?

Спасибо за ссылку, кстати. Почитаю.
...
Рейтинг: 0 / 0
Наследование визуальных классов. Как?
    #34473521
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дельфисты прибежали
У NetBeans очень удобный редактор, а у JBuilder какой-то версии (2006, что-ли), он очень глючный. Бр-рр, как вспомню.
Есть такой проект, как SwingLabs, и его компонент JXPanel. Цвет рамочек меняется через Border, можно просто пробежаться по всем компонентам при исполнение программы и назначить цвет фона.
PS Сделать наследников всех классов - это сколько же свободного времени надо иметь.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование визуальных классов. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]