JDialog и JPanel не открываются для своих установленных размеров и не показывают свои метки? - PullRequest
0 голосов
/ 16 октября 2011

В моем коде Netbeans у меня есть JPanels и JDialog, которые иногда сводят меня с ума.Некоторые контроллеры в этих контейнерах решают не отображать или автоматически изменять размер, даже если я установил их размер и содержимое в коде и с помощью свойств IDE.Например, некоторые из моих jButtons на определенном JPanel не показывают его текстовую метку, или размеры некоторых моих текстовых полей меняются.

Любое решение этого вопроса будет с благодарностью!

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Когда вы создаете GUI с помощью мастеров IDE NetBeans, менеджером макета, прикрепленным к JPanel и JFrame, является GroupLayout, и он работает как положено.Он сохраняет размер вашего JPanel и JFrame, как вы указали.

Теперь, если вы измените LayoutManager для JPanel или JFrame, то вы сами по себе.Вы должны знать последствия изменения LayoutManager и обновлять / добавлять необходимый код, чтобы заставить код работать должным образом.

Я предложу вам оставить LayoutManager по умолчанию в качестве GroupLayout, если вы хотите получить то, что видитев конструкторе компонентов NetBeans.

0 голосов
/ 16 октября 2011

К сожалению, вы не предоставили фрагмент кода, который может показать вашу проблему.Но позвольте мне предположить, что вы запутались с поведением макета.Обычно мы используем Layout Manager и возлагаем на него ответственность за размещение и изменение размеров графических элементов.Менеджер по расположению делает это, когда окрашивается родительский элемент, то есть во время выполнения метода paint(), который происходит асинхронно и может быть вызван различными событиями (например, изменение фокуса, изменение размера окна и т. Д.).

В этом случае все ваши попытки изменить размер определенного элемента путем вызова его setSize() могут быть переопределены менеджером макета, который решит изменить размер одного и того же элемента по-разному.

Итак, если мои предположения верны, научитесь пользоваться менеджерами верстки и задавайте более конкретные вопросы, если у вас возникнут какие-либо трудности с ними.

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