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){}}注:编写三角形时的画图
