【发布时间】:2012-11-13 01:14:45
【问题描述】:
假设我在 JFrame 中有一个 JPanel。当我调用更改该 JPanel 的首选大小的方法时,它不会更改。
代码如下所示:
public class SomePanel extends JPanel{
public SomePanel(){
setPreferredSize( new Dimension( 390, 40 ) );
setBackground( Color.BLACK );
}
public void expand(){
setPreferredSize( new Dimension( 390, 200 ) );
}
public static void main( String args[] ){
JFrame frame = new JFrame();
frame.setSize( 450, 500 );
frame.setLayout( new FlowLayout() );
SomePanel somePanel = new SomePanel();
frame.add( somePanel );
frame.setVisible( true );
somePanel.expand();
}
}
有什么我必须先做的吗?我试过在调用 expand() 时检查 JPanel 的大小。 JPanel 在设置首选大小前后的高度保持在 40。
我也尝试过使用 Dimension 变量,但也没有用。
Dimension dimension;
public SomePanel(){
dimension = new Dimension( 390, 40 );
...
}
public expand(){
dimension.setSize( 390, 200 );
setPreferredSize( dimension );
}
【问题讨论】:
标签: java swing components jframe jpanel