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

时间:2012-03-04 14:39:41

标签: java swing jpanel

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

 public void actionPerformed(ActionEvent actionEvent) {

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

 }

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

2 个答案:

答案 0 :(得分:0)

我所做的是设置首选大小然后无效。

panel.setPreferredSize(sizes.getCurrentScrollableDrawingPanel());
panel.invalidate();

然后重新绘制父母。

scrollPane.repaint();

答案 1 :(得分:0)

对我来说,它有效:

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