java画直线问题

问题描述

为什么我执行程序后都是变成先从0,0开始画直线,而不是从我按下鼠标的点开始画直线packageFrameGraphics;importjava.awt.Graphics;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JFrame;importjavax.swing.JPanel;publicclassGraphics1extendsJPanel{/***@paramargs*///JFramef=newJFrame();intxStrat,yStrat,xEnd,yEnd;JFramef=newJFrame();publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubGraphics1d=newGraphics1();d.Init();}publicvoidInit(){f.addMouseListener(newMymouse());//f.add(p);f.add(this);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(400,400);f.setVisible(true);}classMymouseimplementsMouseListener{@OverridepublicvoidmouseClicked(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseEntered(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseExited(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmousePressed(MouseEvente){//TODOAuto-generatedmethodstubxStrat=e.getX();yStrat=e.getY();repaint();}@OverridepublicvoidmouseReleased(MouseEvente){//TODOAuto-generatedmethodstubxEnd=e.getX();yEnd=e.getY();repaint();}}publicvoidpaintComponent(Graphicsg){g.drawLine(xStrat,yStrat,xEnd,yEnd);}}大家帮帮我

解决方案

解决方案二:
思考一下,你刚按下鼠标,还没松开的时候,xStrat,yStrat,xEnd,yEnd的值等别是多少?g.drawLine(xStrat,yStrat,xEnd,yEnd)会画出什么结果?
解决方案三:
鼠标按下滑动抬起是一个动作,把这3个动作的鼠标坐标传给drawLine

时间: 2024-09-20 00:54:23

java画直线问题的相关文章

java画直线被其他panel遮挡,寻求解决

问题描述 java画直线被其他panel遮挡,寻求解决 我在主panel上画直线,但是一部分直线被主panel上的子panel给遮住了,我把子panel设置成透明也不行,求解决方案,多谢 解决方案 把布局换成边界布局~~

java:画图板的制作

学会了使用按钮监听以及鼠标监听器之后,我们就可以制作一个属于自己的画图板了,以下是我之前制作的一个简易的画图板,功能方面尚还不足,不过已经可以完成铅笔,橡皮,画直线,圆等基本工作了,还可以完成颜色的自由选择,大家不放自己也动手做做吧. 首先是界面类: Java代码 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import ja

急需-画直线的代码在VC 环境下编写

问题描述 画直线的代码在VC 环境下编写 在VC c++环境下编写一个程序,画直线,求代码.希望快点,谢谢了 解决方案 MoveToEx( hdc, xSrc, ySrc, NULL); LineTo( hwd, xDst, yDst); 就是直线

Photoshop用直线工具画直线后怎样设置直线由淡到浓的渐变

  Photoshop用直线工具画直线后,设置直线由淡到浓的渐变的具体方法如下: 1.把它变成选区,填充渐变色,选前景色到渐变透明. 2.在直线上添加蒙版,用羽化喷枪把尾部喷淡,也可达到由淡到浓的渐变. 分类: PS入门教程

visio 怎么画直线

  方法1 (工具栏)连接线工具->画出连接线->(选中线)鼠标右键->直线连接线.   方法2   (菜单)视图->工具栏->绘图(选择绘图工具中的"线条工具")->画直线.      

java画金字塔,但是程序无响应

问题描述 java画金字塔,但是程序无响应 import acm.program.*; import acm.graphics.*; public class jinzita extends GraphicsProgram{ public static final double BRICK_WIDTH=10; public static final double BRICK_HEIGHT=4; public static final double BRICK_IN_BASE=10; public

java画拓扑图。目前我只会画静态的,怎么实现移动其中一个圆,整个拓扑图也随之变化

问题描述 java画拓扑图.目前我只会画静态的,怎么实现移动其中一个圆,整个拓扑图也随之变化 解决方案 维护一个节点坐标和节点到节点连线的数据结构,移动节点就更新节点坐标,并且重新绘图.

gps-现在有GPS坐标,如何用java画出这些坐标的轨迹图

问题描述 现在有GPS坐标,如何用java画出这些坐标的轨迹图 已有LONLAT的坐标图,请问有什么API可以推荐一下,能够画出轨迹图的草图 谢谢 解决方案 查看百度地图,高德地图,GOOGLE地图API 解决方案二: 用百度地图api试试吧

1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形

源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1.     画直线 Ø  增加'直线'菜单项,建立类向导: Ø  对CXXXXXXView类增加成员变量my_draw_flag.并在构造函数中初始化为0 Ø  在'直线'菜单项处理函数中,将my_draw_flag=1:表示画直线 Ø  增加window消息处理,WM_LBUTTONDOWN 和WM_MOUSEMOVE和WM_LBUTTONUP Ø  增加成员变量 在构