Существует класс, который распространяется на JFrame
. затем Далее JFrame
имеют JPanel
с именем contentPane, и этот Jpanel содержит еще 2 jpanel. как показано на рисунке.Как Центрировать Jpanel в JFrame?
Хочу Центр, который ContentPane в JFrame
так, что при изменении размера JFrame
JPanel
(ContentPane) будет оставаться в центре. Я пробовал с разными Layouts
, но не придумал правильный. там в любом случае ? Изображение полного изображения here
Код - это.
public class Purchases extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Purchases frame = new Purchases();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 513, 438);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setBounds(10, 10, 477, 193);
contentPane.add(panel);
panel.setLayout(null);
JPanel panel_1 = new JPanel();
panel_1.setBounds(10, 214, 477, 174);
contentPane.add(panel_1);
panel_1.setLayout(null);
}
Этот код автоматически генерируется Eclipse. Я не нашел, где contentPane добавляется в JFrame.
Вы просто хотите центрировать панель, чтобы при изменении размера (jframe становится больше) есть пустая граница со всех сторон? это кажется немного неестественным для меня – maffelbaffel
, если есть пустые границы, я увеличу размер JPanel. Повреждение должно сосредоточиться. размер i будет обрабатывать –
Добавьте панель в виде одного компонента в «GridBagLayout», который будет центрировать его. НАПРИМЕР. как показано в [этом ответе] (http://stackoverflow.com/a/9090772/418556). –