Контейнеры и контроллеры Swing не соответствуют применяемым к ним настройкам? - PullRequest
0 голосов
/ 16 октября 2011

Я использую Netbeans 7 и сталкиваюсь с самыми необычными ситуациями при разработке Swing-контейнеров и контроллеров. По какой-то неизвестной причине и в некоторых ситуациях Контейнеры или Контроллеры решают выбрать свои собственные размеры и размеры, хотя я попытался установить эти параметры как на уровне кода, так и в представлении свойств каждого из этих контейнеров. Иногда я получаю текстовую метку некоторых моих jButton-ов, которые не отображаются, иногда я получаю JDialog или JPanel другого размера, хотя я и указал их в режиме конструктора и на уровне кода.

У кого-нибудь есть объяснения этому странному поведению, или кто-то сталкивался с подобной проблемой на Netbeans?!

С уважением

Ответы [ 2 ]

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

вы, вероятно, заложили контейнеры встроенным FreeLayout или GridBagLayout. Для конкретных вопросов о встроенных оприонах и функциях есть Форумы Netbeans , но выглядит как безумные ответы на вопросы,

Java Desktop Aplication ( JSR296 ) давно не поддерживается Framework, я не знаю причину и не знаю почему (чтобы избежать каких-либо предположений)

Java Desktop Aplication основан на Java AWT & Swing Components

рассмотрите возможность использования стандартных Swing JComponents , заложенных по стандарту LayoutManagers , вместо того, чтобы перевоплощать un_supported Framework, около Swing существует текущий (отмеченный) Swing Forum

может быть, слишком удобно drag_and_drop Components из подготовленных вариантов, но с надоедливыми настройками (на мой взгляд, не_пользовательски)

для хорошего ответа вы должны задать вопрос на основе SSCCE

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

Размеры компонентов изменяются в соответствии с текущими LayoutManager правилами вашего контейнера.Каждый менеджер имеет свой собственный набор правил для управления размером компонентов.Например, если вы используете BorderLayout ( введите здесь описание ссылки ) и добавляете компонент в центральной части, он будет использовать все доступное пространство, игнорируя настройки размера (включая минимальный / предпочтительный)/ максимальный размер).Однако, если вы используете GridBagLayout, вы можете указать, как свободное пространство распределяется между компонентами.

Похоже, ваша проблема связана с менеджером компоновки.В большинстве случаев менеджер по умолчанию не будет тем, который вы хотите использовать.Обязательно установите правильный LayoutManager экземпляр для ваших нужд.Если вам нужно больше рекомендаций, многие учебники по менеджерам компоновки доступны в Интернете. Этот прибывает из Оракула (ранее написанный Sun, когда он все еще владел вещью).

...