2012-03-04 54 views
0

是否可以在運行時更改JPanel的大小(長度&寬度)? 我有一個JFrame,裏面有一個JPanel(放置在一個jscrollPane中)和一個JButton。當按下JButton時,我希望JPanel的大小隨着長度和寬度的變化而變化。 要做到這一點,我使用以下作爲ActionListener的對JButton:在運行時更改JPanel的大小,java

public void actionPerformed(ActionEvent actionEvent) { 

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

} 

,我試圖設置(JPanel中在的paintComponent)方法以隨機值其尺寸的優選尺寸,但是這沒沒有工作。任何幫助,將不勝感激。

+0

爲了更好地幫助越早,張貼[SSCCE(http://sscce.org/)。 – 2012-03-04 15:12:06

回答

0

我所做的是設置了首選大小,然後無效。

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

然後,您重繪父級。

scrollPane.repaint(); 
+0

我介紹了您的解決方案,但它不起作用。 – Mihir 2013-02-06 08:10:35

0

對我來說,它的工作原理:

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