首页 > 解决方案 > Java GUI 显示空白,直到调整大小

问题描述

我已经为许多可用的选项编写了一个 java gui 代码。gui 也设置为 visible true 但直到我选择它的边框并拖动它们以调整 gui 窗口的大小时才会显示。手动调整大小后,它会显示所有内容。此外,文本标签、文本字段和按钮不在新行中,它们是一个接一个放置的。请告诉我这有什么问题:这是代码的一部分:

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); 
    }

标签: javaswingawt

解决方案


frame.setVisible(true) ;

上述语句应在所有组件都添加到框架后调用。所以它应该是你方法中的最后一个语句。

此外,您应该调用:

frame.pack();

在使框架可见之前,而不是 setSize(),以便所有组件都以其首选大小显示。


推荐阅读