永发信息网

java 画线问题

答案:1  悬赏:80  手机版
解决时间 2021-03-20 09:12
import java.awt.*;
import java.awt.event.*;
public class Ex13_2 extends Frame implements Runnable
{
int currentX=0,currentY=0;
int startX=0,startY=0;
public static void main(String []args)
{
Ex13_2 workstart=new Ex13_2();
}
public Ex13_2()
{
super("Ex13_2");
setSize(350,350);

enableEvents(AWTEvent.MOUSE_EVENT_MASK);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);

setVisible(true);
new Thread(this).start();
}

public void processWindowEvent(WindowEvent e)
{
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}

public void processMouseEvent(MouseEvent e)
{
if(e.getID()==MouseEvent.MOUSE_PRESSED)
{
startX=e.getX();
startY=e.getY();
}
if(e.getID()==MouseEvent.MOUSE_MOVED||e.getID()==MouseEvent.MOUSE_DRAGGED)
{
currentX=e.getX();
currentY=e.getY();
//repaint();
}

}
public void run()
{
while(true)
{
repaint();
try{Thread.sleep(30);}
catch(InterruptedException e){;}
}
}
public void paint(Graphics g)
{
g.drawLine(startX,startY,currentX,currentY);
}

}

怎么改?
最佳答案
鼠标画线程序,我给你改了两处(见注释),现在运行没问题了,你看看吧。
import java.awt.*;
import java.awt.event.*;
public class Ex13_2 extends Frame implements Runnable
{
int currentX=0,currentY=0;
int startX=0,startY=0;
public static void main(String []args)
{
Ex13_2 workstart=new Ex13_2();
}
public Ex13_2()
{
super("Ex13_2");
setSize(350,350);

enableEvents(AWTEvent.MOUSE_EVENT_MASK );
enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK); //这里加了一句
enableEvents(AWTEvent.WINDOW_EVENT_MASK);

setVisible(true);
new Thread(this).start();
}

public void processWindowEvent(WindowEvent e)
{
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
public void processMouseMotionEvent(MouseEvent e){ //这里加了一个函数并且把processMouseEvent函数中的鼠标移动判断移到这里
if(e.getID()==MouseEvent.MOUSE_MOVED || e.getID()==MouseEvent.MOUSE_DRAGGED)
{
currentX=e.getX();
currentY=e.getY();
}
}

public void processMouseEvent(MouseEvent e)
{
if(e.getID()==MouseEvent.MOUSE_PRESSED)
{
startX=e.getX();
startY=e.getY();
}
}
public void run()
{
while(true)
{
repaint();
try{Thread.sleep(30);}
catch(InterruptedException e){;}
}
}
public void paint(Graphics g)
{
g.drawLine(startX,startY,currentX,currentY);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我家的配置玩LOL想换个显卡最低多少钱,不要2
无线路由器为什么有信号没有网速
白星粮油店地址在什么地方,想过去办事
下列各组句子中,加点的词的意义和用法不相同
The traditional view is * we sleep because
电信装宽带送的猫和机顶盒都是旧的,我改怎么
金坛哪有钟表维修的啊
本人1981年7月22日生的怎么样计算虚龄
杯子里的珠子叫什么
拼多多二等奖是什么
北洋广场我想知道这个在什么地方
front innocent百度云资源
-30十23十-14+28等于多少
现在是不是有20个档的卡车啊?
抽水什么意思?
推荐资讯
防弹镀膜玻璃划痕可以修复
对船舶造成主要损害的自然危害是哪一种
太阳的劝说四年级下册作文400字
连环控股是什么意思
请问我买是金镶玉挂件,说是千足金,可是上面
为什么绝地求生进不去,电脑配置不行吗?
眉高眼低是什么意思
本能1、2里是同一个女主角吗?
海信电视LED55K3500S怎么下载第三方软件
求反恐Yin英的全tao 最好百度云 谢谢
炸酥类点心不起层原因
大众是不是小排量自吸不行才上涡轮增压的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?