Java JFrame窗体中的组件不显示问题

目录

窗体的构造 

原因

解决方法


窗体的构造 

最近在学习写JFrame窗体时,发现插入的控件在运行时总是不能直接出现,以下是窗口的构建方法和按钮组件的构造方法

public lmain(){
        this.setSize( width,height);
        this.setIconImage(new ImageIcon("look/tupian/shuzi.png").getImage());//小图标
        this.setLocationRelativeTo(null);//窗口居中
        this.setDefaultCloseOperation(3);//关闭事件
        this.setResizable(true);//窗口大小可调节
        this.setTitle("连连看");
        this.setVisible(true);//窗体可见
    }
public void Do(){
        this.setLayout(new GridLayout(3,3,0,0));
        for(int i=0,k=0;i<9;i++){
                String str="look/tupian/"+(++k)+".png";
                JButton bt=new JButton();
                bt.setMargin(new Insets(0,0,0,0));// 设置按钮边框和标签之间的间隔
                bt.setContentAreaFilled(false);//设置不绘制按钮的内容区域
                bt.setBorderPainted(true);// 设置绘制按钮的边框
                bt.setIcon(new ImageIcon(str));// 设置默认情况下按钮显示的图片
                bt.addMouseListener((MouseListener) new MouseAdapter() {//鼠标点击事件
                    public void mouseClicked(MouseEvent e){
                        bt.setVisible(false);//按钮不可见
                    }
                });
                getContentPane().add(bt);
        } 
    } 

执行代码后发现窗口上未出现按钮组件

 在对窗口进行拖拽大小,或者缩放后按钮又可以出现

原因

 出现这样的

原因是:在构建窗体时就已经写入了窗体可视化,窗口在构建后直接被绘制,使得后面的组件放置后不可见。但是对窗体拖拽大小,或者缩放时,窗体重绘按钮又可见了。

解决方法

我们在构建窗口的方法中删掉窗口可视化,在组件全部构建完成后添加回来即可解决

public static void main(String args[]){
        lmain look=new lmain();
        look.Do();
        look.setVisible(true);//窗口可视化.最后可视化,防止组件消失
    }

运行结果如下

发现窗口中组件可以直接出现 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值