假设我在 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 );
}