|
|
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#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. 29. 30. Почему ex.setVisible(true); находится в методе run() Если setVisible(true); можно поставить после setDefaultCloseOperation(EXIT_ON_CLOSE); в методе initUI() ? Почти во всех пример такое встречаю, не могу понять зачем так делают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 10:39 |
|
||
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#18+
Cpt. Gray, imho показываться или не показываться на экране прерогатива того кто создаёт объект. А не самого себя в конструкторе. По ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 10:56 |
|
||
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#18+
Petro123Cpt. Gray, imho показываться или не показываться на экране прерогатива того кто создаёт объект. А не самого себя в конструкторе. По ООП. Можете поподробнее? "Видимость" это же атрибут самого фрейма, почему бы тогда не устанавливать его вместе с остальными атрибутами (заголовком и размерами и тд) в конструкторе? Как правильно делать, чтобы все было по фэн-шую? Так как в примере? Или же еще в других примерах видел, что в методе run() перед ex.setVisible(true); ставят ex.setDefaultCloseOperation(EXIT_ON_CLOSE); ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 11:06 |
|
||
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#18+
Cpt. GrayМожете поподробнее? "Видимость" это же атрибут самого фрейма, почему бы тогда не устанавливать его вместе с остальными атрибутами (заголовком и размерами и тд) в конструкторе? 1) Это не критично на простейшем примере. 2) Если запхать setVisible(true) в конструктор, то код, который использует этот фрейм не сможет создать объект, поменять состояние объекта и только затем показать окно. Таким образом вы бы лишили клиентский код гибкости. И в случае острой надобности так сделать, пришлось бы переписывать готовый класс SimpleEx 3) Рантайм всегда хорошо разбивать на фазы и методы. И если рассмотреть жизненый цикл окна внимательно, то мы получим следующее. - Создать объект - Создать структуру UI - неизменяемые свойства - Проинициализировать значения свойств по-умолчанию - Установить значения свойств для конкретного сценария использования, которые отличают от значений по-умолчанию - Показать окно пользователю ... Так вот в этом сценарии, если мы начнем перемешивать эти фазы, то в них будет сложно вносить изменения. Конечно, такие фазы на примитивных примерах не очевидны, но когда они начинают формироваться в коде, лучше сразу их реализовывать отдельными блоками и методами, чтобы в будущем не тратить время на рефакторинг спагетти кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 11:21 |
|
||
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#18+
Blazkowicz"Видимость" это же атрибут самого фрейма, почему бы тогда не устанавливать его вместе с остальными атрибутами (заголовком и размерами и тд) в конструкторе? Потому что "видимость" это не простой атрибут, это атрибут, который меняет критическое состояние окна. Если установить атрибуты, а потом вызвать setVisible, то мы получим готовое к использованию окно. Если установить setVisible, а потом атрибуты, то мы получим динамическое отображение всех изменений на экране. Именно поэтом порядок вызова других атрибутов и setVisible важен, именно поэтому это свойство такое особенное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 11:24 |
|
||
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#18+
Blazkowicz +1 Cpt. Gray, создание окно может быть рессурсоёмким (табла тыщи записей). Потом поёдёт событе onCreate А потом ты уже свою строку - Показать. Всё логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 11:28 |
|
||
|
Объясните простой пример со Swing
|
|||
|---|---|---|---|
|
#18+
Petro123Потом поёдёт событе onCreate на которое может быть подписан совсе другой программист в совсем другом коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 11:30 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=124&tid=2125157]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 367ms |

| 0 / 0 |
