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