2013-06-06 2 views
1

У меня есть JPanel, который используется для рисования меню для моей игры и JFrame, к которому он добавлен, мне нужно добавить меню в середину рамки, чтобы оно выглядело просто как хорошо, с более высоким разрешением, чем на более низком уровне. Я пробовал frame.add(menu, BorderLayout.CENTER) и menu.setLocation(windowW/2, windowH/2), но ни один из этих вариантов не работает. Каков самый простой способ сделать это?Центрирование JPanel в JFrame

+0

Используйте 'LayoutManager'-х: ВСЕГДА! Не называйте 'setLocation/setSize/setBounds', поскольку LayoutManager будет меняться так или иначе (это их работа). Google «Учебник Java Swing LayoutManager» и прочитайте учебник Oracle. Вы быстро увидите различные возможности. –

ответ

3

Расположите JComponent в центре JFrame

использования GridBaglayout без override GridBagConstraints или BoxLayout затем JComponent will be placed into center and isn't resizable with container

+0

Я попытался заставить его работать с этим кодом: 'Box box = new Box (BoxLayout.X_AXIS); box.add (Box.createHorizontalGlue()); box.add (меню); box.add (Box.createHorizontalGlue()); frame.add (box); ' –

+0

Он размещает его так, чтобы меню начиналось посередине, но оно разрезает меню так, чтобы оно отображало только 1/4 меню. Как я могу это исправить? –

+0

если я удалю второй 'box.add (Box.createHorizontalGlue());' он не будет вырезать меню, но тогда он не будет посередине –

1

Вам необходимо вызвать метод frame.setLocationRealtiveTo(null) или как parameter окно, на которое должен ссылаться новый фрейм.

EDIT: Думаю, я понял это неправильно. Вы хотите добавить компонент к JFrame к середине всего. Добавьте вместо этого JPanel в JFrame и добавьте component в JPanel (BorderLayout.Center).