Java GUI 在调整大小之前显示空白

标签 java swing awt

我已经为其中的许多可用选项编写了 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); 
    }

最佳答案

frame.setVisible(true) ;

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

此外,您应该调用:

frame.pack();

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

关于Java GUI 在调整大小之前显示空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59339779/

相关文章:

java - 使用 ServerSocket 和 Socket 类从浏览器获取完整的 URL 路径

java - 我的 Java Swing 应用程序不断启动同一个窗口

Java AWT 窗口未显示

java - 如何让按钮对鼠标点击使用react

java - 如何使用 Java 和 NetBeans 将数据显示为图像

java - 增加针对Sonar的jacoco集成测试范围

Java 当他使用相同的凭据登录两次时如何使用户 session 无效

java - 如何制作一个圆圈的动画

java - 乒乓球不会从墙上弹起

java - 从java中的复杂JSON中提取特定值