关于Java按钮添加后要等鼠标滑过才会显示的问题

之前在开发程序的时候遇到一个问题,就是在窗口的面板里添加JBtton后但窗口显示时,按钮不显示,要等鼠标滑过按钮上面时才显示出来,根据这个问题我发了个帖子寻求大神帮忙,遇到一个大神指点了一下,他说我可能是因为窗口创建比JButton实例化早所以才会出现这样的情况,经过反复尝试,我找到了一个解决的方法,在这里记录一下:
的确可能是因为窗口在初始的时候并没有给后面要显示的JButton预留空间,在窗口创建后JButton虽然存在但是被窗口挡住了,要等鼠标滑过才能显示出来,所以我改成了在初始化窗口的时候,在窗口中为JButton预留了一个JPanel面板,再将面板用一个其他类的静态变量关联起来,后面在需要修改面板里面的JButton的时候使用窗口的实例(即JFrame的实例,这里用win表示)调用刷新的方法就可以实现修改窗口里的组件并显示,调用方法如下:

win.validate();
win.repaint();

不过有一个要关键的就是在初始化窗口的时候,要用其它类的静态变量跟你要操作的窗口进行关联,这样后面才可以对你要操作的窗口进行刷新,例如我这里的win就是公共类common的一个全局变量,在我窗口的初始化中在用创建窗口时就有下面的代码:

JFrame jf = new JFrame();
common.win = jf;

在这个问题上我的解决方法就是这样,在创建窗口时给要操作添加或删除的组件预留面板,用刷新窗口的类的静态变量关联窗口,在刷新的类中对窗口进行操作后刷新重绘窗口。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值