如何在JprogressBar上叠加Jbutton

Koo*_*op4 5 java swing

我正在使用swing GUI,我想在progressBar上叠加一个按钮.我已经编写了更新进度条和按钮事件的代码,但我不知道如何管理布局!

目前面板代码如下:

public static void main(String[] args) throws IOException {

        JFrame myFrame = new JFrame("myJfTitle");
        myFrame.setLayout(new BorderLayout());
        JPanel myPanel = new JPanel();
        JButton myButton = new JButton("Click me");
        JProgressBar myBar = new JProgressBar();
        myBar.setValue(50);
        myPanel.add(myButton);
        myPanel.add(myBar);
        myFrame.add(myPanel,BorderLayout.CENTER);
        myFrame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

得出以下结果:

在此输入图像描述

我正在尝试不成功地获得这个:

在此输入图像描述

任何人都可以解释我应该使用哪种布局(或其他),或链接我相同的参考,我可以阅读如何做到这一点?

更新:

通过添加以下代码,我设法过度使用2个组件,但我仍然无法放大进度条以适应面板大小:

LayoutManager overlay = new OverlayLayout(myPanel);
myPanel.setLayout(overlay);
Run Code Online (Sandbox Code Playgroud)

m.c*_*era 8

试试这个:

public class Test {
    public static void main(String[] args) throws IOException {

        JFrame myFrame = new JFrame("myJfTitle");
        myFrame.setLayout(new BorderLayout());
        JButton myButton = new JButton("Click me");
        myButton.setAlignmentX(Component.CENTER_ALIGNMENT);
        JProgressBar myBar = new JProgressBar();
        LayoutManager overlay = new OverlayLayout(myBar);
        myBar.setLayout(overlay);
        myBar.setValue(50);
        myBar.add(myButton);
        myFrame.add(myBar, BorderLayout.CENTER);
        myFrame.pack();
        myFrame.setSize(new Dimension(300,100));
        myFrame.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)