Java Swing : labels and fields apper only after resizing

标签 java swing awt

我想创建一个简单的 Java Swing 应用程序,其中包含几个按钮和文本字段。然而,在我启动程序后,我看到的只是一个空窗口。仅当我手动更改窗口大小时,所有元素才会出现。我怎样才能改变它并使所有元素立即出现?

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;

class JavaLesson extends JFrame{
    public static void main(String[] args){
        new JavaLesson();
    }

    public JavaLesson(){
        this.setSize(400,400);

        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension dim = tk.getScreenSize();
        int xPos = (dim.width / 2) - (this.getWidth() / 2);
        int yPos = (dim.height / 2) - (this.getHeight() / 2);

        this.setLocation(xPos,yPos);


        this.setTitle("My app");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);


        JPanel panel = new JPanel();

        JLabel label1 = new JLabel("This is label");
        JButton button1 = new JButton("Send");
        JTextField textField1  = new JTextField("Type here",7);

        panel.add(label1);
        panel.add(button1);
        panel.add(textField1);

        this.add(panel);

        textField1.requestFocus();
    }
}

最佳答案

您必须在将面板添加到框架后在线设置 this.setVisible(true) ,这样做,它将显示您在框架中添加的所有组件。

尝试一下,看看是否有效。

 public JavaLesson(){
    this.setSize(400,400);
    ..
    ..  

    JPanel panel = new JPanel(); 
    JLabel label1 = new JLabel("This is label");
    JButton button1 = new JButton("Send");
    JTextField textField1  = new JTextField("Type here",7);

    panel.add(label1);
    panel.add(button1);
    panel.add(textField1);

    this.add(panel);   
    this.setVisible(true);
}

希望这有帮助。 干杯:)

关于Java Swing : labels and fields apper only after resizing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56615833/

相关文章:

java - 使用 PDFBOX jar 加载后 PDF 发生变化

java - 使用java将java字符串转换为geojson

Java多线程: How to add text from 1 jtextfeild simultaneously to another jtextfeild and disable jbutton if no text entered in jtextfeild

java - Java 中的 repaint() 方法

java - 做了一个 "virus",需要提示

java - JUnit 测试未能测试 system.out.println 结果

java - 用子类替换 Spring Bean 时出错

java - 创建一个包含多个组件的 swing 组件

java - 如何让 KeyListener 工作?

java - 创建一个完全透明的JFrame