Несколько менеджеров макетов в Java - PullRequest
8 голосов
/ 31 марта 2010

Есть ли способ использовать более 1 менеджера компоновки в Java. Прямо сейчас я использую gridLayout для реализации шахматной доски, но под ней я хотел бы поместить некоторые другие вещи, но не в gridLayout. Может быть, FlowLayout или какой-то другой макет. Как бы я поступил так? Спасибо!

Ответы [ 2 ]

9 голосов
/ 31 марта 2010

Да, все, что вам нужно - это спланировать макет всего пользовательского интерфейса (т. Е. Окна, мастер-панели и т. Д.)

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

Итак, предположим, у меня есть JPanel с именем masterPanel, который содержит все компоненты для моего шахматного приложения. Итак, код будет выглядеть так:

JPanel masterPanel = new JPanel(new BorderLayout());
JPanel chessBoardPanel = createChessboardPanel(); //assuming this method will return a
//JPanel with chess board using GridLayout
JPanel infoPanel = new JPanel(); //this is the panel that would contain info elements, that //may go below my chess board.
//Now add everything to master panel.
masterPanel.add(chessBoardPanel, BorderLayout.CENTER);
masterPanel.add(infoPanel, BorderLayout.PAGE_END);
//add masterPanel to your window (if required)
this.getContentPane().add(masterPanel);
8 голосов
/ 31 марта 2010

Есть ли способ использовать более 1 макета менеджер по Java.

Абсолютно. Фактически, использование нескольких менеджеров компоновки является нормой.

Как бы я поступил так?

Любой подкласс Container может иметь LayoutManager и содержать дочерние элементы. И каждый из этих дочерних элементов сам по себе может быть Container с детьми. Наиболее часто используемый контейнер под фреймами верхнего уровня - JPanel.

Для вашего примера, вам, вероятно, следует использовать BorderLayout для кадра, поставить JPanel с сеткой в ​​ее положении CENTER (потому что это тот, который получает все доступное оставшееся пространство, когда другим позициям дан предпочтительные размеры) и еще один JPanel с «другими вещами» в положении ЮГ.

Более подробную информацию можно найти в учебнике Swing по менеджерам компоновки .

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