2015-11-22 192 views
0

我現在正在爲Uni編程一個Chomp遊戲。一切正常,但底部的標籤。它的背景應該填補整個底部。在附件中,你可以看到現在看起來如何。我嘗試設置標籤的最小尺寸和首選尺寸。高度正在改變,但寬度只是保持對文字的調整。我該如何改變它?JLabel不會改變寬度

注意:該代碼段僅包含在自定義方法中設置框架和麪板而不是主類。該組件到標籤的

private void init() 
    { 
    JFrame fenster = new JFrame(); 
    this.spielfeld = new SpielfeldPanel(M, N); 
    this.anzeige = new SpielerAnzeigeLabel(this.spieler); 
    JPanel panel = new JPanel(); 
    BoxLayout boxlayout = new BoxLayout(panel,BoxLayout.Y_AXIS); 
    panel.setLayout(boxlayout); 
    fenster.setTitle("Chomp"); 
    fenster.setSize(1000,700); 

    panel.setPreferredSize(new Dimension(1000, 60)); 
    Dimension d = new Dimension(getPreferredSize()); 
    panel.setMinimumSize(d); 
    panel.add(spielfeld); 
    panel.add(anzeige); 
    fenster.add(panel); 


    this.spielfeld.setVisible(true); 
    this.anzeige.setVisible(true); 
    panel.setVisible(true); 
    fenster.setVisible(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 




    } 

http://i.stack.imgur.com/qDfBM.png

回答

1

BoxLayout方面的寬度在其優選的寬度/高度顯示出來。

默認情況下,JFrame使用BorderLayout。所以只需將標籤添加到幀獨立面板:

//panel.add(anzeige); 
//fenster.add(panel); 
fenster.add(panel, BorderLayout.CENTER); 
fenster.add(anzeige, BorderLayout.PAGE_END); 

的PAGE_END約束尊重的高度,但使寬度等於可用的空間。有關更多信息和示例,請參閱How to Use BorderLayout的Swing教程部分。