840 x 400 のフレームを作成し、テキスト フィールドを追加しました。デフォルトでは、Java アプリはテキスト フィールドのサイズまでしか縮小されませんでした。それぞれのサイズに固定してほしい。
を試してみましsetResizable(false)
たが、うまくいきませんでした。setExtendedState()
setBounds()
JPanel を contentPane として使用するか、それを contentPane に追加getPreferredSize() method and then use
し、JFrame でその pack()` をオーバーライドするのが最善です。例えば:
import java.awt.Dimension;
import javax.swing.*;
@SuppressWarnings("serial")
public class MyPanel extends JPanel {
private static final int PREF_W = 400;
private static final int PREF_H = 300;
public MyPanel() {
//...
}
@Override
public Dimension getPreferredSize() {
return new Dimension(PREF_W, PREF_H);
}
private static void createAndShowGui() {
MyPanel myPanel = new MyPanel();
JFrame frame = new JFrame("My GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(myPanel);
frame.setResizable(false);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
この利点の 1 つは、他のクラスがsetSize(...)
またはを介して MyPanel のサイズを変更できないことsetPreferredSize(...)
です。
試す
setPreferredSize(new Dimension(840,400));
フレームに名前を付けた場合、次のことができます
name.setPreferredSize(new Dimension(840,400));