В Java 1.6, почему добавление Jpanel в другую JPanel с использованием add () по умолчанию не отображает добавленную панель? - PullRequest
1 голос
/ 05 октября 2009

У меня есть JFrame с JPanel.

Я хочу добавить еще один JPanel, который является предварительно настроенным компонентом, на Jpanel внутри моего JFrame.

Если я сделаю это:

    subPanel.setLayout(new BorderLayout());
    subPanel.add(preconfiguredPanel,BorderLayout.CENTER);

Моя панель покажет.

Если я сделаю это:

    subPanel.add(preconfiguredPanel);

мой JPanel не будет отображаться. В документации сказано, что при использовании add (Component) будет использоваться Layout FlowLayout по умолчанию. Хорошо, хорошо, но почему мой компонент не будет отображаться внутри этой JPanel при использовании FlowLayout по умолчанию ???

1 Ответ

4 голосов
/ 06 октября 2009

Возможно, потому что ваша панель не имеет предпочтительного размера.

Когда вы добавляете панель в BorderLayout, по умолчанию она помещается в центр, поэтому размер панели будет автоматически изменен до размера рамки.

Когда вы добавляете панель в FlowLayout, макет потока соответствует размеру панели.

Если вам нужна дополнительная помощь, опубликуйте свой SSCCE.

...