Как отлаживать Java Swing Layouts - PullRequest
11 голосов
/ 13 июля 2011

Существует один метод, который печатает информацию о компоновке для отдельных компонентов.Я знал, что есть один метод, но я забыл имя.

Когда вы вызываете этот метод для компонента Swing, он отображает подробную информацию о компоновке для этого компонента так же, как вызов dumpstacktrace.

Есть идеи?Как называется этот метод?Я прочитал это в одной книге, но забыл это.Или дайте мне знать несколько хороших способов отладки макета Java Swing.

Ответы [ 3 ]

32 голосов
/ 13 июля 2011

Когда ваш JFrame виден, нажмите CTRL + SHIFT + F1 и посмотрите вывод консоли для древовидной иерархии компонентов и компоновок.

6 голосов
/ 13 июля 2011

Я не знаю о конкретном методе для этого, вы можете сделать это с помощью нажатия клавиши во время выполнения.

Взгляните на страницу: Устранение неисправностей AWT

Предоставляется следующий совет по отладке:

Чтобы вывести иерархию компонентов AWT, нажмите Ctrl + Shift + F1.

Он также предоставляет другие советы по отладке макета в разделе «Проблемы с макетом», а также есть другой раздел, посвященный колебанию «Устранение неполадок Swing»

2 голосов
/ 13 июля 2011

Каждый контейнер (включая все JComponents) имеет метод getLayout (), который возвращает менеджер макета, который был установлен для этого компонента, или ноль, если ни один из них не установлен (но помните, что многие из них имеют менеджеры по умолчанию). Вы также можете получить getComponents (), чтобы вернуть массив содержащихся компонентов. Если вы хотите увидеть все менеджеры компоновки, вам нужно написать рекурсивный метод, чтобы просмотреть все имеющиеся компоненты, проверить, что они наследуются от Container, а затем вызвать вышеуказанные методы.

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