2014-09-02 3 views
1

Почему невозможно добавить JFrame в JFrame? Это просто добавление компонента в контейнер. Как Java запрещает мне это делать? Да, я знаю, что это не имеет смысла, но суть моего вопроса - понять механизм Swing - как он работает под капотом.JFrame внутри JFrame

+1

JFrame - своеобразное настольное окно, и бессмысленно внедрять его внутри другого. Есть способы, пожалуйста, следуйте http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice – eduyayo

+2

Вы читали [* Использование контейнеров верхнего уровня *] (http: //docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html)? –

+0

Да. Как я уже сказал, я знаю, что неправильно думать о добавлении JFrame в JFrame. Но они никогда не говорят, почему это не работает. – user107986

ответ

1

JFrame является контейнером верхнего уровня и поэтому сопоставим с корневым элементом XML-файла. Спецификация допускает только один из них.

+1

** Спецификация допускает только один из них. **. Вы могли бы изменить это. Вы можете иметь несколько полностью отдельных JFrames (хотя это не особенно хорошая идея, см. [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/questions/9554636/the-use-of-multiple -jframes-хорошо-плохо-практика)) – DavidPostill

0

JFrame может добавить JInternalFrame не такой же lick JFrame Класс JFrame несовместим с Frame. JInternalFrame очень похож на настройку GUI для JFrame. JInternalFrame также предоставляет другие API, такие как pack, что делает его похожим на JFrame.