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

Java学习进程3

Java学习进程3

简易画图工具实现步骤

画图工具:
1.展示画图工具的界面
2.监听器:鼠标监听器方法
3.画笔:在界面程序中显示图形内容,图形内容显示在哪个组件上,画笔就从该组件上获取
监听器
1.事件源:当前动作所发生的组件(swing):窗体
2.监听器:鼠标监听器方法:addMouseListener()
3.绑定事件处理类
作用域:一对大括号就是一个独立作用域{}
引用传递:一个类想用另一个类的里的组件/对象

example
在简易画图工具中显示直线,矩形,等腰三角形图形效果
DrawUI类

packagecom.yw.oop0508;importjavax.swing.*;importjava.awt.*;/** * @author YAN * @date 2026/5/8 20:31 * @description 画图工具 */publicclassDrawUI{//显示画图工具的界面publicvoidshowUI(){JFramejf=newJFrame();jf.setSize(800,800);jf.setTitle("画图工具");jf.setLocationRelativeTo(null);jf.setDefaultCloseOperation(3);jf.setVisible(true);//画笔,从窗体上获取画笔对象,一定要在窗体显示可见之后Graphicsg=jf.getGraphics();//给窗体添加鼠标监听器方法DrawListenerlistener=newDrawListener();jf.addMouseListener(listener);//传递画笔对象glistener.gr=g;}publicstaticvoidmain(String[]args){DrawUIui=newDrawUI();ui.showUI();}}

DrawListener类

packagecom.yw.oop0508;importjava.awt.*;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;/** * @author YAN * @date 2026/5/8 20:53 * @description 实现接口:implements * 实现接口一定要重写接口中所有的抽象方法 */publicclassDrawListenerimplementsMouseListener{//引用传递publicGraphicsgr;//保存传递过来的画笔对象//定义全局变量publicintx1,y1,x2,y2;publicvoidmouseClicked(MouseEvente){System.out.println("点击");}publicvoidmousePressed(MouseEvente){System.out.println("按下");//获取当前坐标值//局部变量:1.在方法(作用域)中定义的变量 2.方法的参数x1=e.getX();y1=e.getY();}publicvoidmouseReleased(MouseEvente){System.out.println("松开");x2=e.getX();y2=e.getY();//绘制线段// gr.drawLine(x1, y1, x2, y2);//绘制矩形// gr.drawRect(x1, y1, x2, y2);//绘制等腰三角形intd=x2-x1;gr.drawLine(x1,y1,x2,y2);gr.drawLine(x1,y1,2*x1-x2,y2);gr.drawLine(2*x1-x2,y2,x2,y2);}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}}

注:编写三角形时的画图

http://www.jsqmd.com/news/782313/

相关文章:

  • 2026年GEO优化服务商推荐(7家实测精选) - 品牌测评鉴赏家
  • 2026最新空调保养公司/机构推荐!湖北优质权威榜单发布,实力靠谱武汉空调保养服务机构精选 - 十大品牌榜
  • 2026届毕业生推荐的六大AI辅助写作平台推荐榜单
  • 不碰内核源码也能“改“内核?聊聊 ftrace 函数挂钩那点事儿
  • VS Code主题定制:从JD‘s Abyss看深色主题的设计哲学与工程实践
  • SOCD Cleaner终极指南:3步解决游戏按键冲突,实现职业级操作精度
  • 辽宁工业大学考研辅导班推荐:排行榜单与选哪家好评测 - michalwang
  • 第八十二份发言:关于“他们”——八十一位思想者与本文的关联性阐释(完整版)
  • 如何解决键盘输入冲突问题:Hitboxer终极键盘映射优化工具指南
  • 如何让老旧安卓电视流畅看直播?MyTV-Android的3大技术突破方案
  • Postman面试问题
  • OpenClaw实战:100个可运行AI自动化案例库,解决真实工作流痛点
  • 实测国内 5 家头部铸铝门厂家,浙江幸福之家凭实力成为企业 / 高端业主信赖之选 - 企业品牌优选推荐官
  • 为什么这个开源项目能让你的百度网盘提取码查询时间缩短99.5%?
  • 2026年深圳纯直营驾培与智驾陪驾完全指南:从拿证难到上路无忧的一站式破局方案 - 优质企业观察收录
  • AI模型智能路由:基于任务复杂度与成本约束的自动化调度实践
  • 2026 越野叉车哪个牌子好?行业热门品牌优缺点详细评测 - 奔跑123
  • 国内ORP电极十大品牌排名 - 仪表人小余
  • 3分钟解锁B站宝藏:哔哩下载姬让你的视频收藏从未如此简单
  • 2026舟山民宿最新最准确的选择指南:这五家设计感强,选择不踩雷 - 生活测评君
  • RAG 一接 GitLab CI 文档就开始变量答对却 Pipeline 仍跑偏:从 Include Resolution 到 Variable Precedence Grounding 的工程实战
  • 解放双手:如何让AzurLaneAutoScript成为你的碧蓝航线智能管家
  • irm https://get.activated.win | iex出现irm : 未能解析此远程名称: ‘get.activated.win‘
  • Cursor 配置 Claude 4.7 API 完整教程(5步搞定,亲测有效)
  • 完全免费,AI自动剪视频工具 AutoClip 实测:不会剪辑也能一键生成短视频(附完整教程+额度领取)
  • 绝地求生罗技鼠标宏终极指南:三步实现智能压枪的完整教程
  • 哔哩下载姬Downkyi终极指南:轻松获取8K超高清B站视频的完整解决方案
  • 五一假期后,如何高效处理闲置携程任我行礼品卡? - 京顺回收
  • K8s告警智能分析:基于Robusta与GPT的自动化运维实践
  • Python量化投资终极指南:免费快速获取同花顺问财数据的完整解决方案