在运行时更改JPanel的大小,java

在运行时更改JPanel的大小,java,java,swing,jpanel,Java,Swing,Jpanel,是否可以在运行时更改JPanel的大小、长度和宽度? 我有一个JFrame,里面有一个JPanel,放在一个jscrollPane和一个JButton中。当按下JButton时,我希望JPanel的大小改变,并随机选择长度和宽度值。 为此,我使用以下内容作为JButton的actionListener: public void actionPerformed(ActionEvent actionEvent) { jPanel1.repaint(); jPan

是否可以在运行时更改JPanel的大小、长度和宽度? 我有一个JFrame,里面有一个JPanel,放在一个jscrollPane和一个JButton中。当按下JButton时,我希望JPanel的大小改变,并随机选择长度和宽度值。 为此,我使用以下内容作为JButton的actionListener:

 public void actionPerformed(ActionEvent actionEvent) {

        jPanel1.repaint(); 
        jPanel1.revalidate();       

 }

我尝试在paintComponent方法中设置jPanel的首选大小,为其维度设置随机值,但这不起作用。任何帮助都将不胜感激。

我所做的是设置首选大小,然后使其无效

panel.setPreferredSize(sizes.getCurrentScrollableDrawingPanel());
panel.invalidate();
然后重新绘制父对象

scrollPane.repaint();
对我来说,它是有效的:

        getContentPane().remove( panel1);
        getContentPane().repaint();
        getContentPane().add(panel1);
        panel1.setBounds(0, 48, 100, 100);
        getContentPane().repaint();

为了更快地获得更好的帮助,请发布一个。