Java设计图形绘制窗口。通过若干按钮控制一个正方形的绘出、删除及面积计算
2条回答 默认 最新
CSDN专家-赖老师(软件之家) 2021-06-09 22:22关注package java3.T8; import java.awt.*; import java.awt.event.*; import java.awt.event.MouseListener; import java.util.EventListener; import javax.swing.JFrame; import java.awt.event.MouseMotionListener; public class DrawLineApp extends JFrame implements MouseListener, MouseMotionListener { /* * * 绘制界面: * paint( ):进行绘图的具体操作,可以通过重写此方法来实现图形绘制 update( ):用于更新图形,先清除背景、前景,然后再调用paint( )方法。 repaint( ):用于重绘图形,在组件外形发生变化, 即大小改变或位置移动时,repaint( )方法立即被系统自动调用,而实际上repaint( )方法是自动调用update( )方法。 repaint->update->paint * * */ int startX, startY; // 定义画图的起点x和y坐标 int endX, endY; // 定义画图的终点x和y坐标 boolean drawing = false; // 定义是否要画图的判断变量 public DrawLineApp() { super("鼠标画线"); //在窗口添加鼠标事件 this.addMouseListener(this); //在窗口添加鼠标运动事件(移动,拖曳) this.addMouseMotionListener(this); //设置窗口大小 this.setSize(500, 400); //显示窗口 setVisible(true); //点击窗口右上角的关闭按钮时,退出程序 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //窗口居中显示 setLocationRelativeTo(null); } //该函数用于绘制窗口,系统自动调用 @Override public void paint(Graphics g) { // super.paint(g); //画线函数(起始坐标(x,y),终止坐标(x,y)) g.drawLine(startX, startY, endX, endY); //drawRect画矩形 // g.drawRect(x, y, width, height); //加载图片 // g.drawImage(img, x, y, bgcolor, observer) } //系统自动调用 @Override public void update(Graphics g) { this.paint(g); } //按下鼠标时触发该事件 @Override public void mousePressed(MouseEvent e) { this.drawing = true; this.startX = e.getX(); //获取鼠标当前位置的x值 this.startY = e.getY(); //获取鼠标当前位置的y值 } //释放鼠标 public void mouseReleased(MouseEvent e) { } //鼠标拖曳 public void mouseDragged(MouseEvent e) { if (drawing) { this.endX = e.getX(); this.endY = e.getY(); //调用repaint函数,其实就是要求系统运行paint函数一次 this.repaint(); this.startX = e.getX();// 当前点作为起始点 this.startY = e.getY(); } } //鼠标进入 public void mouseEntered(MouseEvent e) { } //鼠标离开 public void mouseExited(MouseEvent e) { } //鼠标单击 public void mouseClicked(MouseEvent e) { /* * this.drawing=!this.drawing; this.startX=e.getX(); this.startY=e.getY(); */ } //鼠标移动 public void mouseMoved(MouseEvent e) { } public static void main(String args[]) { new DrawLineApp(); } }解决 无用评论 打赏 举报