java - 如何将 Jbutton 覆盖在 JprogressBar 上

标签 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);
}

结果如下:

enter image description here

我正在尝试获取此信息但未成功:

enter image description here

任何人都可以向我解释我应该使用哪种布局(或其他布局),或者将相同的引用链接给我,我可以从中阅读如何做?

更新:

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

LayoutManager overlay = new OverlayLayout(myPanel);
myPanel.setLayout(overlay);

最佳答案

试试这个:

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);
    }
}

关于java - 如何将 Jbutton 覆盖在 JprogressBar 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31655284/

相关文章:

java - 桌面应用程序/脚本与 Web 应用程序上的 javascript 交互

java - 上传的文件如果不经过处理并保存在服务器上会怎样?

java - VerticalLayout 中的多个 CssLayout

java - JPanel 不想聚焦所以 KeyAdapter 不起作用

java - 为什么 Java Graphics2D 'drawString' 停止 repaint()?

java - 在资源管理器中打开回收站文件夹

java - Selenium WebDriver 加载某些页面非常慢

java - 如何修复此代码以便我可以将此 JFreeChart 添加到面板中

java - "add one more entry"模式类的好名字

java - 通过按钮作为显示面板打开另一个类(class)