NetBeans следует назвать «мексиканские прыгающие бобы» - PullRequest
1 голос
/ 18 января 2010

Я пытался настроить форму Java в NetBeans с 15-20 визуальными компонентами (кнопками, текстовыми полями и т. Д.), И я использовал парадигму макета Free Design на MAC.

Согласно тому, что я прочитал, макет Free Design дает мне различные руководства по выравниванию, но не пытается принудительно выравнивать по определенным разделителям строк и столбцов. Тем не менее, я обнаружил, что когда я это делаю, ширина моей формы может произвольно меняться, или некоторые из компонентов, которые я уже разместил, будут радикально перемещаться, когда я делаю даже небольшие корректировки для других позиций компонентов.

Есть ли какой-нибудь способ привязать все эти компоненты после размещения, или есть лучшая парадигма компоновки, которая дает мне свободу размещать компоненты там, где я хочу?

Ответы [ 6 ]

2 голосов
/ 19 января 2010

ИМХО, Матисс работает лучше всего, когда ты знаешь, чего хочешь до того, как ты начнешь. Похоже, что это не очень хорошо с итеративными изменениями.

Вот несколько правил, которым я следую при использовании Матисса в режиме произвольной формы. Они не делают это чудесным, просто менее болезненным:

  • Сборка сверху вниз и слева направо. Большинство прыжков происходит, когда вы возвращаетесь, пытаясь вставить что-то.
  • Постройте его за один проход.
  • Когда вы добьетесь прогресса, сохраните его. Есть условия, когда Матисс отбросит свой список отмен. Не рассчитывайте на Ctrl-Z, чтобы выручить вас. Я использую локальное хранилище Mercurial для отслеживания своих изменений.
  • Держите это маленьким. Чем больше элементов, тем больше вероятность взрыва. Постройте это из меньших компонентов. Например, если у вас есть поле даты с кнопкой, чтобы открыть календарь
    • сделать это компонентом.
    • Добавить компонент в палитру,
    • используйте это в большем компоненте.
0 голосов
/ 18 января 2010

GridBag Layout - мой любимый, и особенно в Matisse (Netbeans GUI). У вас есть как мастер для графического управления всеми свойствами.
Приведу несколько примеров, чтобы все было идеально, как вы хотите, но когда вы это сделаете, вы никогда не оглянетесь.

Взгляните на Sun GutorBag Layout

0 голосов
/ 18 января 2010

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

0 голосов
/ 18 января 2010

Я обнаружил, что использование GroupLayout напрямую работает очень хорошо. Сначала это может сбить с толку, потому что горизонтальное и вертикальное расположение выполняется отдельно, но как только вы к этому привыкнете, это не так сложно. Вы, безусловно, можете заставить вещи выравниваться и слипаться при изменении размера. Это намного лучше, чем использовать вложенные панели, GridBags и тому подобное.

MigLayout тоже может работать, но GroupLayout включен в JDK.

0 голосов
/ 18 января 2010

Я настоятельно, настоятельно рекомендую MigLayout (и отойти от инструментов разметки GUI). Каждый раз, когда вы думаете, что экономите с помощью инструмента с графическим интерфейсом, он быстро испаряется, как только вы сталкиваетесь с поведением менеджера компоновки. Реальные интерфейсы кодируются, а не создаются методом перетаскивания.

Я обнаружил, что мне понадобилось около 3 часов, чтобы привыкнуть к MigLayout - после этого перерыва я обнаружил, что он невероятно интуитивный и мощный.

0 голосов
/ 18 января 2010

Возможно, пришло время взглянуть на других LayoutManager, таких как GridBag или что-то еще, что даст вам то, что вы хотите. Встроенный выбор NetBeans звучит как плохой выбор для ваших нужд.

Если вы выберете нулевой LayoutManager, вы получите абсолютное позиционирование.

Но наряду с этим возникает и абсолютная ответственность: не нужно менять положение элементов.

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