Нужна помощь в понимании причины использования метода setRootPaneCheckingEnabled () класса JFrame - PullRequest
0 голосов
/ 22 февраля 2019

Это скорее теоретический вопрос.Я читал документацию по классу JFrame, и у него был метод с именем setRootPaneCheckingEnabled(), целью которого, по-видимому, является управление переадресацией вызовов add() и setLayout() на панель содержимого JFrame.Если мы передадим true этому методу, то вызовы add() и setLayout() будут переадресованы, и если мы передадим false, эти вызовы будут работать непосредственно на JFrame.

Я не знаюпричина, по которой кто-то хотел бы, чтобы вызовы add() и setLayout() работали непосредственно с JFrame, а не с его панелью содержимого.Может кто-нибудь, пожалуйста, дайте мне знать об этих причинах?

1 Ответ

0 голосов
/ 22 февраля 2019

Перед Java до 1.5 вам нужно написать frame.getContentPane().add(...).

Кажется достаточно простым, но делайте это достаточно часто, и это становится очень, очень утомительным.

Пройдите 1.5, и они добавляют возможность просто использовать frame.add(...) и переадресовывать эти вызовы на contentPane.

Может показаться, что это не так уж и много, но, возможно, это был один из самых спорных вопросов и серьезный вопрос о возможностях в Swing.

Это также стало источником разочарования для новых программистов,кто не понимал, что JFrame на самом деле является составным компонентом и тратит часы, пытаясь понять, почему ничего не работает.

Кроме того, в свое время получить достойную IDE с автоматическим завершением было на самом деле трудной задачей, так что, да, печатать эту штуку на длинной руке было полной болью в ... запястьях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...