Размещение компонента Java Swing

1

Почему считается неправильной формой программирования для размещения компонентов в качели непосредственно на рамке, а не в панели? Когда я добавляю компоненты непосредственно в фрейм, на самом деле не возникает никаких проблем, поэтому мне было интересно, почему все обучающие видео, которые я видел, и даже GUI Window Builder я установил компоненты на панелях

Теги:
swing
jpanel
jframe

2 ответа

1
Лучший ответ

Когда вы добавляете компоненты непосредственно в фрейм, используя JFrame#add(Component), вы фактически добавляете его в панель содержимого фрейма, которая является JPanel.

Дополнительные панели позволяют более подробно детализировать, поэтому вы можете увидеть несколько панелей. Я думаю, что главная причина, по которой это было бы неодобрительно, заключается в том, что вы должны поддерживать "область компонентов" (область содержимого) и рамку (что привязывает границу) отдельно, чтобы избежать путаницы. Лично я не забочусь слишком много, и это больше личное предпочтение.

Как указывалось ранее, JFrames поставляется в комплекте со своей собственной панелью содержимого, которая используется при добавлении компонентов с помощью JFrame#add(Component). Если вам действительно интересно, проверьте исходный код этого метода.

Другая проблема заключается в использовании метода краски. Если вы переопределите метод рисования JFrame, вы рискуете повлиять на границу; то, чего можно избежать, используя отдельную панель

  • 0
    Спасибо за ваш прямой ответ :)
0

В дополнение к вышеуказанной причине другая причина заключается в том, что с использованием JPrame default ContentPane мы не можем устанавливать границы для компонентов. Вот пример

Ещё вопросы

Сообщество Overcoder
Наверх
Меню