gpt4 book ai didi

Java Swing : labels and fields apper only after resizing

转载 作者:行者123 更新时间:2023-12-02 04:24:04 25 4
gpt4 key购买 nike

我想创建一个简单的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com