Графический интерфейс Java отображается пустым до изменения размера - PullRequest
0 голосов
/ 26 мая 2018

Я написал код Java-интерфейса для многих доступных опций.графический интерфейс также установлен на true, но он не отображается, пока я не выберу границу и не перетащу их, чтобы изменить размер окна графического интерфейса.После ручного изменения размера, он показывает все.Кроме того, текстовые метки, текстовые поля и кнопки не находятся в новых строках, они располагаются один за другим.Пожалуйста, скажите мне, что не так с этим: вот часть кода:

public static void initGUI(){
        JFrame fr = new JFrame(); 
        Container cont = fr.getContentPane();
        cont.setLayout( new FlowLayout( ) );    
        FlowLayout layout = new FlowLayout(); 
        cont.setLayout(layout); 
        frame.setSize(200,300) ;
        frame.setVisible(true) ;

        JTextField tName = new JTextField(30); 
        JTextField tCNIC = new JTextField(15); 

        JLabel nameLabel = new JLabel("Name:");
        JLabel cnicLabel = new JLabel("CNIC #:");


        cont.add(nameLabel);
        cont.add(tName);
        cont.add(cnicLabel);
        cont.add(tCNIC);


        JButton Cancel = new JButton ("Canel" );
        JButton OK = new JButton ("OK" );
        savebtn.setPreferredSize(new Dimension(150, 50));
        retbtn.setPreferredSize(new Dimension(150, 50));
        cont.add(savebtn);
        cont.add(retbtn);


        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    }

1 Ответ

0 голосов
/ 26 мая 2018
frame.setVisible(true) ;

Вышеупомянутое утверждение должно быть вызвано ПОСЛЕ того, как все компоненты были добавлены в фрейм.Таким образом, это должен быть последний оператор в вашем методе.

Кроме того, вы должны вызывать:

frame.pack();

вместо setSize (), прежде чем сделать кадр видимым, чтобы отображались все компонентыв их предпочтительном размере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...