3

JPanel境界線がありますが、問題は、パネルを追加するときに、をJFrame使用してパネルの優先サイズを設定したにもかかわらず、パネルサイズが必要になることsetPreferredSizeです。フレームのレイアウトは「BoxLayout」で、コードは次のとおりです。

public class ActionForm extends JFrame {


    JPanel namePanel;
    JPanel descPanel;
    JLabel actionName;
    JLabel nameLabel;
    JTextField nameTextField, descTextField;
    FlowLayout toolBarLayout = new FlowLayout();     

    public ActionForm() {
        this.setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS));
        TitledBorder nameBorder= BorderFactory.createTitledBorder(
            "Change Description");
        nameBorder.setTitleJustification(TitledBorder.LEFT);
        namePanel = new JPanel(toolBarLayout);
        namePanel.setPreferredSize(new Dimension(150, 150));
        nameLabel = new JLabel("ButtonName");
        nameTextField = new JTextField("Action's Name", 50);
        namePanel.add(nameLabel);
        namePanel.add(nameTextField);
        namePanel.setBorder(nameBorder);
        namePanel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
        this.add(namePanel);
    }

    public static void main(String[] args) {
        ActionForm form = new ActionForm();
        form.setVisible(true);
        form.setSize(970, 500);
        form.setResizable(false);
    }
}

パネルのサイズが変わらないのはなぜですか?

4

1 に答える 1