2012-02-07 3 views
2

Я создаю небольшое приложение для качания, где я создал contentpane с BoxLayout, выровненным по оси Y, и добавил еще 2 JPanels к нему. Все идет нормально.Можно ли динамически добавлять компоненты в середину BoxLayout

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

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

Заключение: Я ищу, чтобы добавить компоненты в BoxLayout с возможностью их добавления до последнего компонента.

Спасибо.

ответ

4

Я просто удалю все компоненты, а затем повторно добавлю их в желаемом порядке, не забудьте позвонить revalidate() и repaint() на контейнер BoxLayout после того, как вы завершили это действие.

Если вам нужен ваш GUI для изменения размера, вам может потребоваться позвонить pack() в окне верхнего уровня, в котором хранятся эти компоненты.

5

Ознакомьтесь с API Container. Метод add(...) имеет перегруженные методы, которые позволяют указать положение компонента в контейнере. Затем revalidate() и repaint() панель.

+0

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

Смежные вопросы