eisldkw 2023-02-05 05:36 采纳率: 20.5%
浏览 51

当JBUTTON的引用变量都失效了时这个JBUTTON对象还会存在吗?

请问,下图中 红框框选的部分,变量 button的作用范围是 for 的{} 范围,当程序运行到for{} 下面的代码 时 button 变量 作为一个局部变量就失效了,而它所对应的 JBUTTON对象 是继续存在 还是 也失效了呢,毕竟指向它的变量 button 变量已经失效了?

img

  • 写回答

4条回答 默认 最新

  • ArdenL_Liu 2023-02-21 14:40
    关注

    代码你也没贴全,我只能推测一下(恰好我做过几年swing和applet的开发经验),希望能够帮你一点:
    这个代码实例, 从内容看,应该是启动一个类似电话按键面板面板的Java Swing Applet。
    代码推测:
    1、首先肯定实例化了布局管理器,和默认的Jpanel,组件容器JContainer等。
    2、for循环中, 只是把1~9这几个按键添加到jp(JPanel)中,上面已经设置布局管理面板为可见,下面又添加了几个特殊按键【*,#,0】。
    3、Applet只要启动(默认没有main方法),就会处于事件等待状态(就像qq,微信一样,除非你关掉它); applet或swing作为主程序启动, 就会处于等待状态,如果你在这几个button上定义触发事件(onClick等事件),注册事件监听器ActionEventListener等(记不清了),被触发后,就会执行相关的事件。
    当然,在这个Applet启动后会处于等待状态,布局管理器中的所有的按钮也不会消失(已经添加到jp中),你所谓的button只是一个指针变量而已,真正的对象是button“i”。
    4、在Swing/AWT 中,只要Applet或window启动, 所有组件都会处于就绪等待状态,不会被GC掉,除非通过逻辑清除该组件, 或者关闭该应用。

    评论 编辑记录

报告相同问题?

问题事件

  • 请采纳用户回复 2月6日
  • 创建了问题 2月5日

悬赏问题

  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计