我正在使用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)
试试这个:
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)