gpt4 book ai didi

java - 在最大化我的框架之前 JLabel 不会显示

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

我一直在寻找这种情况,但显然没有其他问题,所以,我开始了。

我正在制作一个学校项目,需要我制作一个 JFrame,尽管我在 ActionEvents 上度过了一段糟糕的时光,但我终于可以让它工作了,所以在我的 JFrame 中得到了一些我需要的信息后,它显示在JLabel 是一个答案,嗯,确实如此,唯一的事情是,在我单击按钮后什么也没有发生,但当我最大化或调整窗口本身大小时,就会发生这种情况。

    button1= new JButton("Add user");
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
user= input1.getText();
if(user.isEmpty()){
JOptionPane.showMessageDialog(null, "you have an error there!");
}
else {
output2 = new JLabel("thx for registering, "+user);
output2.setBounds(10,40,150,20);
panel.add(output2);
}
}
});
button1.setBounds(310,10,140,20);
panel.add(button1);

最佳答案

不要使用setBounds()。 Swing 被设计为与布局管理器一起使用,因此让布局管理器确定组件的大小/位置。阅读 Layout Managers 上的 Swing 教程获取帮助您入门的工作示例。

当您将组件添加到可见 GUI 时,基本代码应该是:

panel.add(...);
panel.revalidate();
panel.repaint();

revalidate() 将调用布局管理器来为组件提供大小/位置。 repaint() 确保所有组件都被绘制。

关于java - 在最大化我的框架之前 JLabel 不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491783/

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