これを JFrame で使用できます (申し訳ありませんが Java です。私は Jython に詳しくありません)。
frame.setMinimumSize(frame.getPreferredSize());
LayoutManager
のコンテンツ ペインのJFrame
が最小サイズを強制する場合、コードが機能する可能性があります。ただし、デフォルトでは取得できBorderLayout
ません。を使用frame.setMinimumSize(pan.getPreferredSize());
した場合、フレームのサイズにはインセット (つまり、フレームの境界線のサイズ) が含まれるため、設定している最小サイズが実際には小さすぎるため、機能しません。
JFrame で最小サイズを機能させる方法を示す小さなデモを次に示します。
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class TestMinimumSizeOnFrame {
protected void initUI() {
JFrame frame = new JFrame("example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel pan = new JPanel();
pan.add(new JLabel("Some nice beer"));
pan.add(new JButton("get one"));
frame.add(pan);
frame.setVisible(true);
frame.setMinimumSize(frame.getPreferredSize());
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestMinimumSizeOnFrame().initUI();
}
});
}
}