
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.10.2006, 15:20:58
|
|||
|---|---|---|---|
|
|||
JLabel cloning как реализовать? |
|||
|
#18+
JLabel не является Clonable, поэтому стандартного метода clone у него нет, да и не больно хочется. Чего хочется? Сделать метод, который создает новую метку и присаивает ей все public свойства от старой метки. Ну и что мне мешает? Ничего. Вопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке. Что-то зациклило, никто этот велосипед не изобретал? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 16:19:08
|
|||
|---|---|---|---|
|
|||
JLabel cloning как реализовать? |
|||
|
#18+
carperВопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке. В цикле, разве что, средствами Java Reflection. Зачем тебе копировать все поля метки? Можно ведь только Font, Text, BackgroundColor, ForegroundColor, HorizontalAlignment, VerticalAlignment ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 16:28:48
|
|||
|---|---|---|---|
JLabel cloning как реализовать? |
|||
|
#18+
carperJLabel не является Clonable, поэтому стандартного метода clone у него нет, да и не больно хочется. Чего хочется? Сделать метод, который создает новую метку и присаивает ей все public свойства от старой метки. Ну и что мне мешает? Ничего. Вопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке. Что-то зациклило, никто этот велосипед не изобретал? :) а что если унаследовать класс этой самой метки переопределить нужные методы и все нужные свойства сделать static? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:18:08
|
|||
|---|---|---|---|
|
|||
JLabel cloning как реализовать? |
|||
|
#18+
Ruslan.Isbarov carperВопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке. В цикле, разве что, средствами Java Reflection. Зачем тебе копировать все поля метки? Можно ведь только Font, Text, BackgroundColor, ForegroundColor, HorizontalAlignment, VerticalAlignment Это я могу :) Надо бы сюда еще Borders, Insets, Icons, Gap ... Уж очень мне не нравится тупое копирование с риском чего забыть при выходе очередной версии SWING :( Некузявенько это как-то, негламурненько. :) Меня зациклило на том, что где-то я видел более элегантное решение. Ну, или у меня глюки начались под вечер. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:21:27
|
|||
|---|---|---|---|
|
|||
JLabel cloning как реализовать? |
|||
|
#18+
fjord а что если унаследовать класс этой самой метки переопределить нужные методы и все нужные свойства сделать static? Да не нужен мне свой класс, я там clone и сам мог бы наваять, мне хочется стандартные экземпляры "клонировать" просто написать чего-то поэлегантнее, чем тупое присваивание кучи полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:26:55
|
|||
|---|---|---|---|
JLabel cloning как реализовать? |
|||
|
#18+
carper fjord а что если унаследовать класс этой самой метки переопределить нужные методы и все нужные свойства сделать static? Да не нужен мне свой класс, я там clone и сам мог бы наваять, мне хочется стандартные экземпляры "клонировать" просто написать чего-то поэлегантнее, чем тупое присваивание кучи полей. ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:28:30
|
|||
|---|---|---|---|
JLabel cloning как реализовать? |
|||
|
#18+
Вам уже ответили - Reflection вам в помощь. А возможно еще и Beans - технология (я не совсем точно понимаю, что это такое, но могу предположить - вам в самый раз подойдет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:30:51
|
|||
|---|---|---|---|
JLabel cloning как реализовать? |
|||
|
#18+
fjord ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки А что вам не нравится в этом решение? Я бы тоже сразу в эту сторону подумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:35:15
|
|||
|---|---|---|---|
JLabel cloning как реализовать? |
|||
|
#18+
Leonidv fjord ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки А что вам не нравится в этом решение? Я бы тоже сразу в эту сторону подумал. то что вся это операция с циклом будет совершаться каждый раз при создании следующей метки, например сели их 1000, это же усасть, да и как то не в духе это ООП, не универсально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 17:53:01
|
|||
|---|---|---|---|
|
|||
JLabel cloning как реализовать? |
|||
|
#18+
fjord ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки Нет, я просто считаю еще более неэлегантным стилем присвоение "в лоб". И уж совсе не элегантным создание своего наследника только для псевдоклонирования, причем в самом наследнике заниматься тем же копированием в лоб. Не думаю, что ООП нужно именно для этого. :) Пора мне отправляться в пучины reflection, хотя не совсем понимаю, что я там такого элегентного найду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.10.2006, 19:36:47
|
|||
|---|---|---|---|
|
|||
JLabel cloning как реализовать? |
|||
|
#18+
carper ...Уж очень мне не нравится тупое копирование с риском чего забыть при выходе очередной версии SWING :( Некузявенько это как-то, негламурненько. :) Версии Swing (и Java в целом), не так уж часто появляются ;) carper Пора мне отправляться в пучины reflection, хотя не совсем понимаю, что я там такого элегентного найду. Ага. Только ничего гламурненького там точно не найти. Поднимать Reflection ради копирования объектов - имхо BRAINF*CK. И если уж брать Clonable, то в методе clone(...) тебе все равно придется копировать все поля вручную (Это к вопросу о "...элегантных решениях..."). Просто в JLabel клонирование не реализовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2147691]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
284ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 594ms |

| 0 / 0 |
