Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPanel对象放置在底部_Java_Swing_Layout_Constructor - Fatal编程技术网

Java JPanel对象放置在底部

Java JPanel对象放置在底部,java,swing,layout,constructor,Java,Swing,Layout,Constructor,我有一个简单的类叫BallTask,它让一个球四处移动并从帧的极限反弹。我试图应用按钮,我可以使用停止线程和启动它,但我坚持让按钮面板坚持到底 public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame window = new JFrame(); window.

我有一个简单的类叫BallTask,它让一个球四处移动并从帧的极限反弹。我试图应用按钮,我可以使用停止线程和启动它,但我坚持让按钮面板坚持到底

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,所以我想如果我添加了另一个面板,由于布局的原因,它只会位于它下面。但是,按钮显示在框架顶部。有什么想法吗?

您正在制作内容窗格。因此,te
按钮
被添加到
任务
JPanel
(ballstask)有一个默认的
FlowLayout
。如果希望
ballstask
占据
中心
按钮
占据
南部
,只需
窗口。添加(new ballstask())
而不是
设置内容窗格(new ballstask())
。或者,如果需要底部
ballstask
面板上的
按钮
,请将
ballstask
的布局设置为
BorderLayout

@ppeskillet这是一个显而易见的解决方案。非常感谢。准备好后会打勾