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

start [/forum/topic.php?fid=59&msg=34081145&tid=2147691]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 500ms |

| 0 / 0 |
