当前位置: 首页 > news >正文

错误原因详解

	JButton b1 = new JButton("点击");b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubJOptionPane.showMessageDialog(JFrameDemo.this, "按钮被点击了");}});
  1. ​**this 的作用域
    在 b1.addActionListener(new ActionListener() { ... }) 的匿名内部类中,this 代表的是 ActionListener 对象,而 ​
    JOptionPane.showMessageDialog() 需要的是窗口组件(如 JFrame)作为父组件**。

  2. 类型不匹配
    ActionListener 不是 Component 的子类,无法作为对话框的父组件参数传递。

    修正方法

    用 JFrameDemo.this 明确指向外部的 JFrameDemo 窗口对象:

  3. 其他替代方案

  4. 直接使用 null(不推荐)

    JOptionPane.showMessageDialog(null, "按钮被点击了");

    • 缺点​:对话框可能不在窗口中央显示。
  5. 传递 b1(按钮本身)

    JOptionPane.showMessageDialog(b1, "按钮被点击了");

    • 原理​:按钮所在的窗口会被自动识别为父组件。
  6. 内部类中的 this 指向内部类自身,需用 外部类名.this 明确指向外部类的对象。
  7. 在 Swing 事件监听器中,注意 this 的作用域!

  8. 一句话总结

http://www.xdnf.cn/news/620101.html

相关文章:

  • windows10重装ssh无法下载
  • List<Integer> list=new ArrayList<>()
  • SpringAI 大模型应用开发篇-纯 Prompt 开发(舔狗模拟器)、Function Calling(智能客服)、RAG (知识库 ChatPDF)
  • 万亿参数背后的算力密码:大模型训练的分布式架构与自动化运维全解析
  • 开源与闭源之争:AI时代的创新博弈与未来抉择
  • 记录将网站从http升级https
  • 【前端系列】ECharts:数据可视化的强大工具
  • 打卡第27天:函数的定义与参数
  • 通过shell脚本检测服务是否存活并进行邮件的通知
  • JavaSE核心知识点03高级特性03-02(多线程)
  • C++构造和折构函数详解,超详细!
  • NC IntellisysIQ QP、QPA和QPD QP3 Slave buried slave ON RS232 等通讯接口针脚定义
  • LoRA(Low-Rank Adaptation)
  • ISO 26262-5 评估硬件架构度量值
  • 文章记单词 | 第108篇(六级)
  • 单目视觉测量及双目视觉测量
  • 【GPU并行计算】不同设备上的GPU性能分析
  • 使用arXiv.org上的资源进行学术研究
  • 【agent】一个智能助手agent
  • PCIe学习笔记(3)链路初始化和训练
  • TCP为什么是三次握手,而不是二次?
  • JavaScript 语句标识符详解
  • 肝了三个月的Kaggle比赛学习路径,他来了。
  • 实用蓝牙耳机哪款好?先做好使用场景分析!
  • hysAnalyser特色的TS流编辑、剪辑和转存MP4功能说明
  • 系统架构设计师脑图
  • 未授权访问漏洞利用链实战总结
  • List转字符串去除[]和空格
  • Python基础知识(IO编程)
  • Python 项目中安装 OpenAI 库的详细指南