3

さて、どうやら私は最近NetBeansGUIBuilderを使用して怠惰になっています。JLabelとJTextFieldをウィンドウに追加すると、JFrame自体のサイズが変更されません。私は次のことを示すためにSSCCEを作成しました。

package swingdemo;

import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class SwingDemo {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Swing Demo");
        Container contentPane = frame.getContentPane();
        JLabel label = new JLabel("Demo Label");
        JTextField textField = new JTextField();

        contentPane.setLayout(new FlowLayout());
        contentPane.add(label);
        contentPane.add(textField);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

ここで何が欠けていますか?私はそれがかなり単純なものであることを知っています。JLabelとJTextFieldの両方でsetPreferredSize()を呼び出す必要がありますか?

4

1 に答える 1

4

frame.pack()コードの最後に電話する

javadocによると:

「このウィンドウのサイズを、そのサブコンポーネントの推奨サイズとレイアウトに合わせて調整します...」

于 2012-08-22T00:03:38.980 に答える