2013-03-13 110 views
1

我試圖讓我的遊戲簡單的菜單。我在中心有4個按鈕,我想讓它們變大一點並將它們放在中間。調整大小Jbutton將在BoxLayout的

最後一部分工作,但我似乎無法打電話給我的任何一個JButtons並做一個.setSize/.setPreferedSize(new Dimension())就可以了。

public class mainMenu extends JFrame { 
private JButton start, highscore, help, stoppen; 


public mainMenu() { 
    super("Master Mind"); 
    maakComponenten(); 
    maakLayout(); 
    toonFrame(); 
} 

private void maakComponenten() { 
    start = new JButton("Start"); 
    start.setBackground(Color.gray); 
    highscore = new JButton("Higscores"); 
    help = new JButton("Help"); 
    stoppen = new JButton("Stoppen"); 
} 

private void maakLayout() { 
    JPanel hoofdmenu = new JPanel(); 
    hoofdmenu.setLayout(new BoxLayout(hoofdmenu, BoxLayout.Y_AXIS)); 
    hoofdmenu.add(start); 
    start.setAlignmentX(CENTER_ALIGNMENT); 
    hoofdmenu.add(highscore); 
    highscore.setAlignmentX(CENTER_ALIGNMENT); 
    hoofdmenu.add(help); 
    help.setAlignmentX(CENTER_ALIGNMENT); 
    hoofdmenu.add(stoppen); 
    stoppen.setAlignmentX(CENTER_ALIGNMENT); 
    super.add(hoofdmenu); 
} 

private void toonFrame() { 
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    setVisible(true); 
    setSize(500,500); 

} 

public static void main(String[] args) { 
    new mainMenu(); 
} 
} 

回答

2

舉個例子,要改變 「開始」 按鈕的尺寸的最大尺寸,

變化:

start1 = new JButton("Start"); 

start1 = new JButton("Start") { 
     { 
      setSize(150, 75); 
      setMaximumSize(getSize()); 
     } 
    }; 
1

問題是JFrame默認使用BorderLayout,這意味着您的JPanel自然會填充空間。

然後加入你的JPanel,請撥打以下代碼來改變Jframe的佈局爲null,使用JPanel的設置來代替。

this.setLayout(null); 
JPanel hoofdmenu = new JPanel(); 
hoofdmenu.setBounds(0,0, 400, 100); 

或者,你可以設置這些Jbutton

Dimension maxSize = new Dimension(100, 100); 
start.setMaximumSize(maxSize); 
highscore.setMaximumSize(maxSize); 
help.setMaximumSize(maxSize); 
stoppen.setMaximumSize(maxSize); 
0

這裏是繼前兩背後另一個例子 - 我正在做一個音板程序,這實際上是從它的樣本 - JPanel的實際需要,同意第二個職位。

JFrame frame = new JFrame(); 
    JPanel menuPanel = new JPanel(); 
    JButton Button1 = new JButton("<BUTTON NAME 1>"); 
    Button1.setSize(80, 30); 
    Button1.setLocation(4, 4); 
    JButton Button2 = new JButton("<BUTTON NAME 2>"); 
    Button2.setSize(80, 30); 
    Button2.setLocation(90, 4); 

啊,還有一件事 - 你在第二段代碼中創建了不同塊的按鈕。這樣做會導致其他塊看不到它。您需要在塊之外聲明它們,以便所有塊都可以看到它們。

相關問題