我有以下代碼來創建我的GUI。BorderLayout.CENTER不居中我的JPanel
private static void createGUI() {
JFrame frame = new JFrame ("Tiles Game");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar (new JMenuBar());
frame.setContentPane (MainPanel.getInstance());
frame.pack();
frame.setResizable (false);
frame.setLocationRelativeTo (null);
frame.setVisible (true);
}
這是mainPanel中(擴展JPanel)構造函數:
private MainPanel() {
super (new BorderLayout());
setPreferredSize (new Dimension (IMG_SIZE + 10, IMG_SIZE + 10));
...
panel = new ImagePanel();
add (panel, BorderLayout.CENTER);
}
這是ImagePanel(擴展JPanel)構造函數:
private ImagePanel() {
super();
setPreferredSize (new Dimension (IMG_SIZE, IMG_SIZE));
...
}
然而ImagePanel對齊頂端MainPanel的左上角而不是居中,所以我在底部和右側得到一堆額外的填充,而在頂部和左側沒有填充。我如何將它放置在MainPanel的中心?
框架的內容窗格中。這可能是你的圖像。圖像有固定的大小,如果它被設置爲0,0座標,每次調整您的JFrame時它看起來像你的面板不居中。 –
嘗試一些可見的邊框設置爲您的組件,如果你有對齊問題,你不知道它會導致例如,將其組件'this.setBorder(新EtchedBorder());'在'MainPanel'構造。然後你會看到初始化時需要的界限德,我看到佈局沒有問題 - 一定是別的什麼錯。 – hoefling