2014-03-13 87 views
0

我有一个扩展Jpanel的类,里面有一个动画。我有两个停止并启动它的动作按钮,但是我需要按钮出现在Jpanel的底部。 我曾尝试:Jpanel底部的按钮

add(go,BOTTOM_ALIGNMENT); 

add(go,BorderLayout.SOUTH); 

,甚至流布局,但按键都始终坚持坐到JPanel的顶部。有任何想法吗?由于操作事件,按钮需要在Jpanel内部创建。

+0

你有没有试过''JButtons'的setBounds'布局? –

回答

3

“但是我需要按钮出现在JPanel的底部。”

add(go,BorderLayout.SOUTH);将无法​​正常工作,除非设置JPanelBorderLayout的布局。它有一个默认的FlowLayout离开顶部的按钮。

setLayout(new BorderLayout()); 

寻找你的previous question,你有一个start按钮了。不知道你想在哪里放置之一。所以这里有选择。

  • 如果你想在底部两个按钮,如果你想start顶部和go底部包裹他们在另一个JPanel并添加JPanel到主JPanel使用BorderLayout.SOUTH

  • ,然后BorderLayout.NORTHstartBorderLayout.SOUTHgo

  • 你往哪走,不要忘记设置类JPanel


编辑

public class BallPanel extends JPanel { 
    public BallPanel() { 
     JPanel panel = new JPanel(); 
     JButton go = new JButton("GO"); 
     JButton stop = new JButton("STOP"); 
     panel.add(go); 
     panel.add(stop); 

     setLayout(new BorderLayout()); 
     add(panel, BorderLayout.SOUTH); 
    } 
} 
+0

再次感谢您的快速解答。我将它手动设置为流布局,并不断更改它,因此从未看到结果。我将不得不使用流布局来让按钮并排放置,因为一个按钮将占据整个底部? – Softey

+0

您需要将两个按钮添加到_another_“JPanel”。并将_that_' JPanel'添加到您的类'JPanel'的'BorderLayout.SOUTH'。你似乎在我回答的第一篇文章中发现了它。我不明白这是什么令你感到困惑。 –

+0

'buttonsPanel',你不需要设置布局。它有一个默认的'FlowLayout'并且会让你并排看你想要的。如果你不知道,你可以有多个'JPanel'。在需要时嵌入一堆'JPanels'是很常见的做法。 –