Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JLabel cloning как реализовать? / 11 сообщений из 11, страница 1 из 1
25.10.2006, 15:20:58
    #34080585
carper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
JLabel не является Clonable, поэтому стандартного метода clone у него нет, да и не больно хочется.

Чего хочется?
Сделать метод, который создает новую метку и присаивает ей все public свойства от старой метки.

Ну и что мне мешает?

Ничего.
Вопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке.

Что-то зациклило, никто этот велосипед не изобретал? :)
...
Рейтинг: 0 / 0
25.10.2006, 16:19:08
    #34080853
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
carperВопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке.

В цикле, разве что, средствами Java Reflection. Зачем тебе копировать все поля метки? Можно ведь только Font, Text, BackgroundColor, ForegroundColor, HorizontalAlignment, VerticalAlignment
...
Рейтинг: 0 / 0
25.10.2006, 16:28:48
    #34080901
fjord
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
carperJLabel не является Clonable, поэтому стандартного метода clone у него нет, да и не больно хочется.

Чего хочется?
Сделать метод, который создает новую метку и присаивает ей все public свойства от старой метки.

Ну и что мне мешает?

Ничего.
Вопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке.

Что-то зациклило, никто этот велосипед не изобретал? :)
а что если унаследовать класс этой самой метки переопределить нужные методы и все нужные свойства сделать static?
...
Рейтинг: 0 / 0
25.10.2006, 17:18:08
    #34081133
carper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
Ruslan.Isbarov carperВопрос в том как это сделать поэлегнтней, ну, например, в цикле опросить все public свойства и присвоить их новой метке.

В цикле, разве что, средствами Java Reflection. Зачем тебе копировать все поля метки? Можно ведь только Font, Text, BackgroundColor, ForegroundColor, HorizontalAlignment, VerticalAlignment

Это я могу :)
Надо бы сюда еще Borders, Insets, Icons, Gap ...


Уж очень мне не нравится тупое копирование с риском чего забыть при выходе очередной версии SWING :(
Некузявенько это как-то, негламурненько. :)

Меня зациклило на том, что где-то я видел более элегантное решение.
Ну, или у меня глюки начались под вечер. :)
...
Рейтинг: 0 / 0
25.10.2006, 17:21:27
    #34081145
carper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
fjord
а что если унаследовать класс этой самой метки переопределить нужные методы и все нужные свойства сделать static?

Да не нужен мне свой класс, я там clone и сам мог бы наваять, мне хочется стандартные экземпляры "клонировать" просто написать чего-то поэлегантнее, чем тупое присваивание кучи полей.
...
Рейтинг: 0 / 0
25.10.2006, 17:26:55
    #34081170
fjord
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
carper fjord
а что если унаследовать класс этой самой метки переопределить нужные методы и все нужные свойства сделать static?

Да не нужен мне свой класс, я там clone и сам мог бы наваять, мне хочется стандартные экземпляры "клонировать" просто написать чего-то поэлегантнее, чем тупое присваивание кучи полей.
ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки
...
Рейтинг: 0 / 0
25.10.2006, 17:28:30
    #34081178
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
Вам уже ответили - Reflection вам в помощь. А возможно еще и Beans - технология (я не совсем точно понимаю, что это такое, но могу предположить - вам в самый раз подойдет).
...
Рейтинг: 0 / 0
25.10.2006, 17:30:51
    #34081187
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
fjord
ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки
А что вам не нравится в этом решение? Я бы тоже сразу в эту сторону подумал.
...
Рейтинг: 0 / 0
25.10.2006, 17:35:15
    #34081203
fjord
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
Leonidv fjord
ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки
А что вам не нравится в этом решение? Я бы тоже сразу в эту сторону подумал.
то что вся это операция с циклом будет совершаться каждый раз при создании следующей метки, например сели их 1000, это же усасть, да и как то не в духе это ООП, не универсально.
...
Рейтинг: 0 / 0
25.10.2006, 17:53:01
    #34081288
carper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
fjord
ну если обход своиств и присваивание циклом вы считаете элегантным стилем, то флаг вам в руки

Нет, я просто считаю еще более неэлегантным стилем присвоение "в лоб".
И уж совсе не элегантным создание своего наследника только для псевдоклонирования, причем в самом наследнике заниматься тем же копированием в лоб. Не думаю, что ООП нужно именно для этого. :)

Пора мне отправляться в пучины reflection, хотя не совсем понимаю, что я там такого элегентного найду.
...
Рейтинг: 0 / 0
25.10.2006, 19:36:47
    #34081595
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JLabel cloning как реализовать?
carper
...Уж очень мне не нравится тупое копирование с риском чего забыть при выходе очередной версии SWING :(
Некузявенько это как-то, негламурненько. :)


Версии Swing (и Java в целом), не так уж часто появляются ;)

carper
Пора мне отправляться в пучины reflection, хотя не совсем понимаю, что я там такого элегентного найду.


Ага. Только ничего гламурненького там точно не найти. Поднимать Reflection ради копирования объектов - имхо BRAINF*CK.
И если уж брать Clonable, то в методе clone(...) тебе все равно придется копировать все поля вручную (Это к вопросу о "...элегантных решениях..."). Просто в JLabel клонирование не реализовано.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JLabel cloning как реализовать? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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