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 );
}