编程语言
首页 > 编程语言> > java – 如果JFrame调整大小,则调整JProgressBar的大小

java – 如果JFrame调整大小,则调整JProgressBar的大小

作者:互联网

我想在调整JFrame大小时调整JProgresbar的大小

我的JProgresBar的大小计算如下:

progressBar.setPreferredSize(new Dimension(getWidth() - 100, 50));

但是当我调整JFrame的大小时,进度条的大小将始终保持不变.

更新1

这是我的代码:

public class MinimalExampleJProgresbar {
    public static void main(String[] args) {
        JFrame frame = new JFrame("SimpleFrame");
        JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
        JProgressBar progressBar = new JProgressBar();

        jPanel.add(progressBar);
        frame.add(jPanel, BorderLayout.PAGE_START);

        frame.setExtendedState(Frame.MAXIMIZED_BOTH);
        frame.setVisible(true);
        progressBar.setPreferredSize(new Dimension(frame.getWidth() - 100, 50));
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

解决方法:

将ComponentAdapter添加到Frame

myFrame.addComponentListener(new ComponentAdapter() {
  public void componentResized(ComponentEvent ev) {
    progressBar.setPreferredSize(new Dimension(getWidth() - 100, 50));
    revalidate();
    repaint();
  }
});

标签:java,swing,jframe,resize,jcomponent
来源: https://codeday.me/bug/20190623/1271910.html