|
|
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Есть класс, описывающий параметры Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Инициализация Код: java 1. 2. 3. 4. 5. 6. 7. 8. На основе списка параметров строится форма Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Требуется при вводе данных в контрол JTextField (edtParamValue ) "пробрасывать" введенные значение в свойство value соответствующего экземпляра Parameter ? Можно конечно в Parameter добавить поле ID и создавать JTextField с именем на основе этого ID, а потом в цикле по всем контролам ... и присвоить значения, но мне этот вариант как-то не нравится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 14:24 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
1) Возьмите JavaFX, там есть binding. 2) Binding для Swing существует, но он недоделан (better beans binding), не развивается и вообще давно заброшен. В принципе, пользоваться можно, но станартных выкрутасов JavaBeans типа индексированых свойств там нет. 3) Если использовать WindowBuilder Pro WYSIWYG, то там достаточно просто конфигурируется binding и потом по коду не сложно разобраться. 4) NetBeans, вроде тоже поддерживает binding для Swing. Никогда не пользовался. 5) Обычно binding для JavaBeans требует PropertyChangeListener/PropertyChangeSupport. Если разобраться с этой концепцией, то можно и ручками забабахать простенький фреймверк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:06 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Blazkowicz1) Возьмите JavaFX, там есть binding. 2) Binding для Swing существует, но он недоделан (better beans binding), не развивается и вообще давно заброшен. В принципе, пользоваться можно, но станартных выкрутасов JavaBeans типа индексированых свойств там нет. 3) Если использовать WindowBuilder Pro WYSIWYG, то там достаточно просто конфигурируется binding и потом по коду не сложно разобраться. 4) NetBeans, вроде тоже поддерживает binding для Swing. Никогда не пользовался. 5) Обычно binding для JavaBeans требует PropertyChangeListener/PropertyChangeSupport. Если разобраться с этой концепцией, то можно и ручками забабахать простенький фреймверк. Значит если только вариант 5. Я на java на уровне джуниора - пишу редко. Мож тогда проще забить и циклом по ID? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:17 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:18 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Parameter дописать по примеру тут: https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:20 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
PropertyChangeSupport можно динамически добавлять через любой AOP. Хоть Spring, хоть обычный Java Proxy InvocationHandler ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:35 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку, только видимо чуть по другому авторNote that text is not a bound property, so no PropertyChangeEvent is fired when it changes. To listen for changes to the text, use DocumentListener. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 16:19 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixСпасибо за подсказку, только видимо чуть по другому авторNote that text is not a bound property, so no PropertyChangeEvent is fired when it changes. To listen for changes to the text, use DocumentListener. Ну, это если в обратную сторону биндинг нужен, то да. Только через DocumentListener. Поэтому проще взять готовый binding в виде либы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 16:54 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
BlazkowiczsaxixСпасибо за подсказку, только видимо чуть по другому пропущено... Ну, это если в обратную сторону биндинг нужен, то да. Только через DocumentListener. Поэтому проще взять готовый binding в виде либы. То есть в обратную? Мне надо чтобы при изменении значения в свойстве Text контрола значение сразу "транслировалось" в Parameter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 17:49 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixBlazkowiczпропущено... Ну, это если в обратную сторону биндинг нужен, то да. Только через DocumentListener. Поэтому проще взять готовый binding в виде либы. То есть в обратную? Мне надо чтобы при изменении значения в свойстве Text контрола значение сразу "транслировалось" в Parameter Эх, а если на форме два компонента, которые привязаны к параметрам с одинаковыми именами - то при изменении text в одном компоненте и в другом менялось. В две стороны. ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 17:51 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixТо есть в обратную? Ну, я привел реализацию для биндинга из бина в UI. Но не наоборот. saxixМне надо чтобы при изменении значения в свойстве Text контрола значение сразу "транслировалось" в Parameter Сорри. Часто не внимательно читаю. Чтобы не писать DocumentListener можно повесить что-нибудь на потерю фокуса. Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:09 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
BlazkowiczsaxixТо есть в обратную? Ну, я привел реализацию для биндинга из бина в UI. Но не наоборот. saxixМне надо чтобы при изменении значения в свойстве Text контрола значение сразу "транслировалось" в Parameter Сорри. Часто не внимательно читаю. Чтобы не писать DocumentListener можно повесить что-нибудь на потерю фокуса. Код: java 1. 2. 3. 4. 5. Да у меня проблема даже не в том чтобы связать UI c бином, а в том что бин в списке. Я пока не понимаю принципа работы этих листенеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:13 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixBlazkowiczпропущено... Ну, я привел реализацию для биндинга из бина в UI. Но не наоборот. пропущено... Сорри. Часто не внимательно читаю. Чтобы не писать DocumentListener можно повесить что-нибудь на потерю фокуса. Код: java 1. 2. 3. 4. 5. Да у меня проблема даже не в том чтобы связать UI c бином, а в том что бин в списке. Я пока не понимаю принципа работы этих листенеров В WPF при биндинге, например, можно настроить направление биндинга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:14 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixВ WPF при биндинге, например, можно настроить направление биндинга. Мы так вернемся к началу темы 1) В Swing нет биндинга. Вообще. 2) Есть библиотеки для биндинга, найти ссылки на примеры? 3) Библиотеки для биндинга интегрированы в IDE, если пользоваться WYSIWYG. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:25 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxix Да у меня проблема даже не в том чтобы связать UI c бином, а в том что бин в списке. Я пока не понимаю принципа работы этих листенеров Список тут при чем вообще? Вы привели код с циклом, я привел методы, которые можно вставить в итерации и получить то чего вы желаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:27 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
BlazkowiczsaxixВ WPF при биндинге, например, можно настроить направление биндинга. Мы так вернемся к началу темы 1) В Swing нет биндинга. Вообще. 2) Есть библиотеки для биндинга, найти ссылки на примеры? 3) Библиотеки для биндинга интегрированы в IDE, если пользоваться WYSIWYG. 1. Это я понял 2. Ну если не затруднительно. Сам тоже поищу. 3. У меня только Идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:28 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxix2. Ну если не затруднительно. Сам тоже поищу. Я бы вот это попробовал http://www.jgoodies.com/freeware/libraries/binding/ Для одного проекта пользовался этим https://kenai.com/projects/betterbeansbinding/pages/Home Примеры надо поискать, но там не сложно. Типа такого: http://www.devx.com/Java/Article/39964 saxix3. У меня только Идея. https://www.jetbrains.com/idea/help/binding-the-form-and-components-to-code.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:39 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixВ WPF при биндинге, например, можно настроить направление биндинга. Вопрос со звездочкой. А в WinForms? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:42 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Blazkowiczsaxix2. Ну если не затруднительно. Сам тоже поищу. Я бы вот это попробовал http://www.jgoodies.com/freeware/libraries/binding/ Для одного проекта пользовался этим https://kenai.com/projects/betterbeansbinding/pages/Home Примеры надо поискать, но там не сложно. Типа такого: http://www.devx.com/Java/Article/39964 saxix3. У меня только Идея. https://www.jetbrains.com/idea/help/binding-the-form-and-components-to-code.html Спасибо, поизучаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:43 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
BlazkowiczsaxixВ WPF при биндинге, например, можно настроить направление биндинга. Вопрос со звездочкой. А в WinForms? Не использовал, но и информации о наличии в нем биндинга не видел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:44 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixBlazkowiczпропущено... Вопрос со звездочкой. А в WinForms? Не использовал, но и информации о наличии в нем биндинга не видел. Вру. Есть. INotifyPropertyChanged ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:46 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
saxixВру. Есть. INotifyPropertyChanged Прямой аналог PropertyChangeListener. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 18:50 |
|
||
|
Связывание свойств из списка со свойствами визуальных компонент
|
|||
|---|---|---|---|
|
#18+
Значит реализовал я двунаправленный биндинг через DocumentListener и PropertyChangeListener. А потом понадобилось тоже самое сделать с JComboBox, а там ItemChangeListener.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39105777&tid=2124656]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 498ms |

| 0 / 0 |
