|
|
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
Нижайше прошу прощения за несуразность вопросов и несообразительность. Ну, да вы же понимаете, я фоксовик. От некоторых людей нельзя требовать слишком многого. Пытаюсь сделать незатейливую программуську со SWING интерфейсом. Для начала, отнаследовал все визуальные классы. Такие как JLabel, JTextBox и еже с ними. Сами понимаете, с базовыми классами работать нельзя. Вдруг хозяин попросит перекрасить все метки (JLabel) в зелёный или подсветить все JTextBox над которыми проходи мышка в красный. Ну не перелопачивать же весь проект?! А так, поправлю свой, отнаследованный от базового класс, и готово! Но вот не получается подключить моих "наследников" так, что бы визуальный редактор форм их понимал (не знаю как). Т.е. если их оформить моих "наследников" как JavaBeans, то проблем у меня не будет (судя по всему). Но ведь и от наследников первого уровня (пусть оформленых как Java Beans), в реальной работе, понадобится опять делать наследников. И опять что ли делать JavaBean из JavaBean? Вобщем, сори за многословность. Как правильно наследовть визуальные классы, что бы IDE это понимали (их визуальные редакторы)? Я пытаюсь работать с NetBean и Eclips. Если они убоги, то скажите с чем работать? И как? (в плане наследования визуальных классов). ЗЫ Может я слишком многого хочу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 23:39:09 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
foxovikВдруг хозяин попросит перекрасить все метки (JLabel) в зелёный или подсветить все JTextBox над которыми проходи мышка в красный. Ну не перелопачивать же весь проект?! А так, поправлю свой, отнаследованный от базового класс, и готово! ИМХО, напрасный труд :) Классы - они ж инстансы имеют и свойства, глобальные настройки, а к ним относятся те, которые ты перечислил, можно хранить отдельно, скажем, в ресурс бандлах *.properties, и применять их в своей программе, тупо брать цвет из проперти и сетить в свой контрол, это ж всего лишь инстанс объекта, а не сам объект - не путай. А еще есть такая штюка як LookAndFeel (LAF) - можно на свой стандартный интерфейс стандартными способами навертеть свой лук энд фил, программа может измениться вообще до неузнаваемости... И это совсем не переписывание контрола с идентичой функциональностью, но с другой мордой - это просто другая морда для стандартного контрола :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 23:48:15 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
Вай Три Ю, я старательно стараюсь ничего не путать. Да действительно в ресурс бандлах можно хранить свойства чего угодно.... Ой, да ладно... спасибо что откликнулся! :-) Продолжим... >>>инстанс объекта, а не сам объект - не путай Не согласен. Инстанс объекта - есть сам объект. Но не класс. (может ты это имел ввиду) мои примеры изменения поведения контроллов в готовом проекте это только примеры. Но и они показывают, что никакие ресурс бандлы не обеспечат подсветку красным при пересечении курсора мышки (согласись, ведь это может сделать только некий метод, который в ресурс не загонишь). Всего предусмотреть невозможно - это раз. Два - Новый L&F писать ради пустякового изменения поведения котролла - это странно. В объектно-ориентированном программировании никто Наследования не отменял (как и инкапсуляции и полиморфизма), и не стоит его пытаться подменить ни делегатами, ни Лук энд Филами. Вай Три Ю, скажи пожалуйста, что, визуальные редакторы Java IDE не понимают наследования? PS Надеюсь на ответ - НЕТ. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 00:16:29 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
foxovik...Но и они показывают, что никакие ресурс бандлы не обеспечат подсветку красным при пересечении курсора мышки (согласись, ведь это может сделать только некий метод, который в ресурс не загонишь) блин, во-первых, для этого есть соответствующий лисенер, который ты прицпишь на свой контрол, а цвет ты можешь вытянуть из ресурс бандла в этом самом лисенере. Не буду я спорить, в конце концов я в свингах не спец, но все равно не пойму чем тебя не устраивают обычные компоненты и зачем тебе их именно наследовать. Может я чего-то не понимаю? Во-вторых посмотри еще вот тут http://java.sun.com/docs/books/tutorial/uiswing/components/model.html А так да, эти ущербные визреды ничего толком не умеют :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 01:50:05 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
foxovik, тяжкое наследие фоксы? Просьте Вы это. Подобные подходы прото не применимы в Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 07:31:57 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
y3u foxovik...Но и они показывают, что никакие ресурс бандлы не обеспечат подсветку красным при пересечении курсора мышки (согласись, ведь это может сделать только некий метод, который в ресурс не загонишь) блин, во-первых, для этого есть соответствующий лисенер, который ты прицпишь на свой контрол, а цвет ты можешь вытянуть из ресурс бандла в этом самом лисенере. Не буду я спорить, в конце концов я в свингах не спец, но все равно не пойму чем тебя не устраивают обычные компоненты и зачем тебе их именно наследовать. Может я чего-то не понимаю? Во-вторых посмотри еще вот тут http://java.sun.com/docs/books/tutorial/uiswing/components/model.html А так да, эти ущербные визреды ничего толком не умеют :) есть только один базовый компонент Swing, который можно юзать без слез - JPanel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 09:29:44 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
2 foxovik: ООП != наследование. А даже очень наоборот. Делегирование часто выигрывает в гибкости. Для вашей задачи это самое то. Вам нужно не свой клас создать, а использовать Фабрику для создания к-тов. Эта фабрика и будет вешать нужные лиснеры и ставить свойства. Память подсказывает что VE эклипса генерял методы в которых можно было писать что нужно. Ну и соответственно в этих методах замените new TextBox() на JFactory.createTextbox(). Ну и неудержусь: 1. это не то чем надо заниматься - противоречит agile. You Aint Gonna Need It!!! 2. Редакторы - ф топку: FormLayout - выбор настоящих мужиков 3. Удачи на земле Жаба остальным +1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 11:20:37 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
У фокспро один редактор формочек у жавих ИДЕ много разных раного качества. Один из лучших у JBuilder, там это достаточно легко. Единственное условие - вся инициализация должна быть в методе jbnit (по нему редактор рисует в своём окошке) ну и ещё по мелочи. Остальные какие пробовал менее удобные. Пробовал нетбинс, идею, какие-то в эклипсе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 11:54:45 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы! Я понял: 1. Визуальные редакторы для Явы пока не очень совершенны и поэтому в среде профессиональных разработчиков они редко используются. Более того, они не совместимы между разными IDE, что сводит их немногочисленные примущества к нулю и даже создаёт проблемы. 2. Мне надо обратить внимание на шаблон проектирования Фабрика классов. Я незаслуженно оставил эту парадигму без внимания. 3. Если мне нужны сложные переделки классов (для визуальных это: из JTextBox сделать ввод даты, сумм (как в калькуляторе), выбор из справочника...), то лучше делать их как JavaBeans (или спи..., в смысле, купить готовые), если мне надо использовать их в визуальных редакторах, или делать обычные насленики, но редакторами при создании UI не пользоваться (см. п.1.). 4. Простые доработки классов принято делать не наследованием а делегированием функциональности объектам исходного класса и настройкой свойств посредством Фабрики классов. PS 2 fixxer Ну чем это отличается от Фокса или C# или VB.NET? В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. Что в лоб, что по лбу... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:04:03 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
+1. Делегирование решает. В качестве примитивов использую JPanel, которые вешаю на фрейм. Эти панельки могут содержать бесконечную композицию из компонентов, с которыми можно производить любые манипуляции. А все визуальные редакторы от лукавого... Если, конечно, задачей не стоит накидать три поля и две кнопки для простой формочки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:10:14 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
авторА все визуальные редакторы от лукавого... Если, конечно, задачей не стоит накидать три поля и две кнопки для простой формочки. можно где-то посмотреть на невиданые красоты ваших изделий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:13:59 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
1024 авторА все визуальные редакторы от лукавого... Если, конечно, задачей не стоит накидать три поля и две кнопки для простой формочки. можно где-то посмотреть на невиданые красоты ваших изделий? а на ваши? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:18:38 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
foxovik 2 fixxer Ну чем это отличается от Фокса или C# или VB.NET? В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. Что в лоб, что по лбу... :-) Не путайте кислое с пресным. Наследование и делегирование это просто два разных механизма расширения функциональности существующих классов. Говорить что где чаще/реже используется некорректно. Почитайте GoF, там в начале описана разница, преимущества и недостатки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:49:56 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
y3uа на ваши? Шутите? Вот же: http://sss1024.googlepages.com/ Ох ленив, Java-программист, две ссылки нажать ленится. Вот мы фоксовики - народ работящий :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:54:45 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
fixxerПочитайте GoF Что почитать? Сори... я не такой умный. GoF это что? (а главное, где?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 12:56:59 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
foxovik fixxerПочитайте GoF Что почитать? Сори... я не такой умный. GoF это что? (а главное, где?) Это я сорри. Просто привык, что большинство знакомо с этой книгой хотя бы понаслышке. Э. Гамма Паттерны проектирования. Могу намылить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 13:00:32 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
Пожалуйста! Если можно! Вот сюда: foxovik@mail.ru А то я её на столе держал, держал, всё прочесть собирался... Да так и ушла сея книга куда-то. А уж в электрическом-то виде... Спасибо, огромное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 13:09:08 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
fixxer foxovik 2 fixxer Ну чем это отличается от Фокса или C# или VB.NET? В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. Что в лоб, что по лбу... :-) Не путайте кислое с пресным. Наследование и делегирование это просто два разных механизма расширения функциональности существующих классов. Говорить что где чаще/реже используется некорректно. Почитайте GoF, там в начале описана разница, преимущества и недостатки. Интересно, а каким образом GoF может помочь в данном случае? Убедить, что RAD средства это скучно, а потому нужно писать код в ручную превращая его в нагромаждение изумительным образом взаимодействующих объектов? Ну..., такой подход тоже имеет право на жизнь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 13:21:55 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Интересно, а каким образом GoF может помочь в данном случае? Убедить, что RAD средства это скучно, а потому нужно писать код в ручную превращая его в нагромаждение изумительным образом взаимодействующих объектов? Ну..., такой подход тоже имеет право на жизнь :) Меня просто смутила формулировка: foxovik В фоксе чуть больше наследования и реже делегирование. В яве чаще делегирование и реже наследование. А про RAD я ничего не говорил. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 13:48:27 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
авторЭ. Гамма Паттерны проектирования Если не сложно, намыльте пожалуйста на erm31@yandex.ru Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 14:02:45 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
termit31 авторЭ. Гамма Паттерны проектирования Если не сложно, намыльте пожалуйста на erm31@yandex.ru Спасибо. тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 14:58:26 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
foxovik 3. Если мне нужны сложные переделки классов (для визуальных это: из JTextBox сделать ввод даты, сумм (как в калькуляторе), выбор из справочника...), то лучше делать их как JavaBeans (или спи..., в смысле, купить готовые), если мне надо использовать их в визуальных редакторах, или делать обычные насленики, но редакторами при создании UI не пользоваться (см. п.1.). JFormattedTextField - только чур не капризничать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 15:22:45 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
см. http://www.instantiations.com/windowbuilderpro/default.htm + читайте правильные книги по современному ОО-проектированию. Это я к тому что использовать наследование чтобы обеспечить одинаковый цвет кнопок - это слишком сильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 16:02:42 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
exppJFormattedTextField - только чур не капризничать Ладно, не буду капризничать. Уговорили, задам я свойства JFormattedTextField и получу нечто пригодное для ввода даты, сумм, массы, объемов и т.п. ОК. Имею на форме вот такие четыре контрола. А дальше, что делать? Ведь в приложении таких контролов десятки, если не сотни. Что каждому определять свойства? Да? Что вы посоветуете? Фабрику, Наследование или ручное задание свойств при каждом употреблении JFormattedTextField. Или что-то ещё? funikovyuriиспользовать наследование чтобы обеспечить одинаковый цвет кнопок - это слишком сильно. ПОЧЕМУ? Я иногда делаю наследование даже не переопределяя ни одного метода и ни одного свойства. Исключительно как задел на будующее. Скажем, объект ввода массы и объема могут быть разных классов но совершенно идентичными (масса и объем это разные сущности, хотя в конкретном приложении они могут быть сходными). Я делаю это потому, что в любой момент может потребоваться сделать их различными. И тогда достаточно подправить один класс и решение готово! А не лазить по всем формам и править свойства JFormattedTextField. Почему этот подход никому не нравится из здесь присутствующих? Спасибо за ссылку, кстати. Почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 16:39:55 |
|
||
|
Наследование визуальных классов. Как?
|
|||
|---|---|---|---|
|
#18+
Дельфисты прибежали У NetBeans очень удобный редактор, а у JBuilder какой-то версии (2006, что-ли), он очень глючный. Бр-рр, как вспомню. Есть такой проект, как SwingLabs, и его компонент JXPanel. Цвет рамочек меняется через Border, можно просто пробежаться по всем компонентам при исполнение программы и назначить цвет фона. PS Сделать наследников всех классов - это сколько же свободного времени надо иметь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 16:43:30 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34472483&tid=2145977]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
69ms |
get tp. blocked users: |
3ms |
| others: | 301ms |
| total: | 471ms |

| 0 / 0 |
