Java Swing GridBagLayout - проблема с размещением двух элементов на панели - PullRequest
0 голосов
/ 28 ноября 2010

Сначала я покажу вам, как это :

picture_how_it_is

Вот как это должно быть (см. Ссылку ниже в моем комментарии):

Надпись должна быть вверху, а TabPane должен заполнять оставшуюся часть экрана полями во всех направлениях.

Это код для его раскладки с помощью GridBagLayout:

// Layout --begin--
    this.mainPanel.setLayout(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();

    // Layout:headLineLabel --begin--
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.gridwidth = 1;
    gbc.gridheight = 1;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.ipadx = 0;
    gbc.ipady = 0;
    gbc.insets = new Insets(0, 10, 0, 0);
    gbc.anchor = GridBagConstraints.FIRST_LINE_START;
    this.mainPanel.add(this.headLineLabel, gbc);
    // Layout:headLineLabel --end--

    // Layout:FestplattenreinigerGraphicalUserInterfaceTabbedPane --begin--
    gbc.gridx = 0;
    gbc.gridy = 1;
    gbc.gridwidth = 1;
    gbc.gridheight = 1;
    gbc.fill = GridBagConstraints.BOTH;
    gbc.ipadx = 0;
    gbc.ipady = 0;
    gbc.insets = new Insets(10, 10, 10, 10);
    gbc.anchor = GridBagConstraints.CENTER;
    this.mainPanel.add(new FestplattenreinigerGraphicalUserInterfaceTabbedPane(), gbc);
    // Layout:FestplattenreinigerGraphicalUserInterfaceTabbedPane --end--
    // Layout --end--

Что нужно знать:

  1. FestplattenreinigerGraphicalUserInterfaceTabbedPane расширяет JTabbedPane.
  2. Я пытался указать все ограничения (даже с их значением по умолчанию), чтобы попрактиковаться.
  3. Если я рекомендую ахоры, то макет останется таким, какой он есть.

Что в этом плохого?

THX очень много! (извините, я не могу публиковать изображения напрямую + только 1 ссылка из-за того, что я новичок -.-)

Ответы [ 3 ]

0 голосов
/ 28 ноября 2010

Чтобы сделать что-то подобное, точно в соответствии с вашим примером, я думаю, что вы можете использовать «Свободный дизайн» в NetBeans вместо GridBagLayout, а затем ограничить возможность изменения размера окна приложения.

0 голосов
/ 28 ноября 2010

Не используйте GridBagLayout. Попробуйте BorderLayout. Метка на СЕВЕРЕ и панель с вкладками в ЦЕНТРЕ.

Или, может быть, вертикальная BoxLayout.

0 голосов
/ 28 ноября 2010

Вы не указали вес и вес, которые необходимы, или все будет просто смешиваться в середине.Поэтому перед добавлением табуляции добавьте:

gbc.weightx = 1.0;
gbc.weighty = 1.0;
...