0

JavaでGUIを理解しようとしています。簡単なログインページの作成から始めました。ここでは、見出しパネル、本文パネル、フッター パネルをボックス レイアウト (垂直方向に積み重ね) に積み重ねています。これはすべて別の親パネルにあり、フレームのコンテンツ ペイン (中央、ボーダー レイアウト) に配置されます。ただし、親パネル内の本体パネルはすべて垂直に引き伸ばされています。それを修正するのに非常に苦労していますが、何か提案はありますか?

ここではスプリング レイアウトなどを使用したくありません。

setSize、setMinimumSize、setMaximumSize は、ここではまったく機能していないようです。

助けてください

        JButton submit = new JButton("Login");                  //Directly added to the frame
        JLabel head1 = new JLabel("LOGIN SCREEN");              //Component of head panel
        JLabel userName = new JLabel("Username ");              //Component of body panel 1
        JTextField userNameField = new JTextField(15);          //Component of body panel 1
        JLabel userNameExtra = new JLabel(" *");                //Component of body panel 1
        userNameExtra.setForeground(Color.red);
        JLabel pass = new JLabel("Password ");                  //Component of body panel 2
        JPasswordField passField = new JPasswordField(15);              //Component of body panel 2
        JLabel passExtra = new JLabel(" *");                    //Component of body panel 2
        passExtra.setForeground(Color.red);
        JLabel footer = new JLabel ("*This field is mandatory");
        JLabel credits = new JLabel("-by Nikhil");

        //---Preparing the panels with their components---
        headPanel.setLayout(new BoxLayout(headPanel,BoxLayout.Y_AXIS));
        headPanel.add(head1);
        //userNamePanel.setLayout(new BoxLayout(userNamePanel,BoxLayout.X_AXIS));
        userNamePanel.add(userName);
        userName.requestFocus();
        userNamePanel.add(userNameField);
        userNamePanel.add(userNameExtra);
        //passPanel.setLayout(new BoxLayout(passPanel,BoxLayout.X_AXIS));
        passPanel.add(pass);
        passPanel.add(passField);
        passPanel.add(passExtra);
        bodyPanel.setLayout(new BoxLayout(bodyPanel,BoxLayout.Y_AXIS));
        bodyPanel.add(userNamePanel);
        bodyPanel.add(passPanel);
        bodyPanel.add(submit);
        footerPanel.setLayout(new BoxLayout(footerPanel,BoxLayout.Y_AXIS));
        footerPanel.add(footer);

        //---Preparing the parent panel with its components (other panels)---
        parentPanel.setLayout(new BoxLayout(parentPanel,BoxLayout.Y_AXIS));
        parentPanel.add(headPanel);
        parentPanel.add(bodyPanel);
        parentPanel.add(footerPanel);

        //---Putting the parent panel in the frame---
        frame.setTitle("Login GUI Application");
        frame.getContentPane().add(parentPanel,"Center");
        frame.getContentPane().add(credits,"South");
        frame.setSize(500,500);
        frame.setVisible(true);
    }
}
4

0 に答える 0