2013-10-18 73 views
0

爲什麼我的小地圖面板不在JFrame的右側?JPanel定位

我的代碼似乎是正確的,但我必須犯一個愚蠢的錯誤。請幫我:)

private static void loadResources() { 
    minimap.setMaximumSize(new Dimension(minimapWidth, minimapHeight)); 
    minimap.setMinimumSize(new Dimension(minimapWidth, minimapHeight)); 
    minimap.setPreferredSize(new Dimension(minimapWidth, minimapHeight)); 

    panel.setMaximumSize(new Dimension(width, height)); 
    panel.setMinimumSize(new Dimension(width, height)); 
    panel.setPreferredSize(new Dimension(width, height)); 

    minimap.setBackground(Color.red); 
    panel.setBackground(Color.GRAY); 

    panel.setLayout(new FlowLayout(FlowLayout.CENTER)); 
    panel.add(minimap); 
    minimap.setLayout(new FlowLayout(FlowLayout.RIGHT)); 

    Character.createCharacter(); 
    frame.add(panel); 
} 

enter image description here

+1

瞭解關於LayoutManagers的所有信息,最好從這裏的swing標籤wiki中引用的在線教程開始。順便說一句:[不要使用setXXSize,有史以來](http://stackoverflow.com/a/7229519/203657) http://stackoverflow.com/a/7229519/203657 – kleopatra

+0

1)爲更好的幫助更快,發佈[SSCCE](http://sscce.org/)。 2)提供GUI的ASCII藝術,因爲它應該以最小尺寸出現並且(如果可調整大小)以額外的寬度/高度出現。 –

回答

0

您設置面板佈局爲中心。然後你添加小地圖,所以小地圖也居中。

通過調用

minimap.setLayout(new FlowLayout(FlowLayout.RIGHT)); 

你剛纔說小地圖(在這種情況下沒有)裏面的所有元素應位於相對於小地圖矩形權上。所以如果你添加一個元素,比如一個灰色的矩形,在小地圖上,你應該看到JFrame中心的紅色矩形和紅色矩形右邊的灰色矩形。

您可以嘗試

panel.setLayout(new FlowLayout(FlowLayout.RIGHT)); 

但是這可能會改變其他元素位置。