2014-03-13 49 views
0

我有一個簡單的叫做BallTask​​的類,它可以讓球移動並反彈框架的極限。我試圖應用按鈕,我可以用來停止線程並啓動它,但我堅持讓按鈕面板堅持到底部。JPanel對象在底部休息

public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      JFrame window = new JFrame(); 
      window.setLayout(new BorderLayout()); 
      window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      window.setContentPane(new BallTask()); 

      JPanel buttons = new JPanel(); 
      JButton stop = new JButton("Stop"); 
      JButton start = new JButton("Start"); 

      buttons.add(start); 
      buttons.add(stop); 

      window.add(buttons,BorderLayout.SOUTH); 
      window.pack(); 
      window.setVisible(true); 
     } 
    }); 
} 

我能想象的問題是與然而設置window.setContentPane做,BallTask​​只是一個JPanel,所以我想如果我添加了另一個面板它只是去它的下面,由於佈局。然而,按鈕出現在框架的頂部。有任何想法嗎?

回答

1

您正在製作BallTask您的內容窗格。所以te buttons正被添加到BallTask。 A JPanel(BallTask​​)有一個默認的FlowLayout。如果您想要BallTask佔據CENTERbuttons佔據SOUTH,只需要window.add(new BallTask())而不是setContentPane(new BallTask())。或者,如果要在底部的BallTask面板上選擇buttons,請將BallTask的佈局設置爲BorderLayout

+0

@ppeskillet這樣一個明顯的解決方案。謝謝。準備就緒時會打勾 – Softey