| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:大家帮下忙~-~
只看楼主 加入收藏
cugdingqiong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-12-11
收藏
 问题点数:0 回复次数:2 
大家帮下忙~-~

谁帮忙了,感激不尽!!

修改一下以下程序MouseDraw.java,使其克服以下缺陷:
1当鼠标在绘图区域单击时,可用黑色圆点实时显示光标当前位置。
2当绘制的两条线段交叉时,不会因为一条线段的移动而导致另一条线段被擦除。
3所有绘制工作完成后,当对绘图窗口执行以下几种操作时,不会导致原有绘制好的线段丢失。
(1) 改变绘图窗口大小
(2) 最小化绘图窗口后再恢复成窗口大小
(3) 用其他窗口全部或部分覆盖绘图窗口,然后再露出绘图窗口

//MouseDraw.java
import java.awt.*;
import java.awt.event.*;

public class MouseDraw
{
public static void main(String[] args)
{
MouseFrame frame=new MouseFrame();
frame.addWindowListener(new Wadapt());
frame.setVisible(true);
}
}

class MouseFrame extends Frame
{
public MouseFrame()
{
setTitle("利用鼠标绘图");
setSize(300,300);
//将panel加入到frame
MousePanel panel=new MousePanel();
add(panel);
}
}

class MousePanel extends Panel implements MouseListener,MouseMotionListener
{
private int x,y,start_X,start_Y,old_X,old_Y;
private boolean draw;
public MousePanel()
{
addMouseListener(this);
addMouseMotionListener(this);
}

public void mousePressed(MouseEvent evt)
{
start_X=evt.getX();
start_Y=evt.getY();
draw=false;
}
public void mouseReleased(MouseEvent evt){}

public void mouseClicked(MouseEvent evt){}

public void mouseEntered(MouseEvent evt)
{
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}

public void mouseExited(MouseEvent evt)
{
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}

public void mouseDragged(MouseEvent evt)
{
x=evt.getX();
y=evt.getY();
repaint();
}

public void mouseMoved(MouseEvent evt){}

/*public void update(Graphics g)
{
paint(g);
}
*/
public void update(Graphics g)
{
if(!draw)
{
old_X=x;
old_Y=y;
draw=true;
}
else
{
g.setColor(getBackground());
g.drawLine(start_X,start_Y,old_X,old_Y);
old_X=x;
old_Y=y;
}

g.setColor(getForeground());
g.drawLine(start_X,start_Y,x,y);
}
}

class Wadapt extends WindowAdapter
{
public void windowClosing(WindowEvent evt)
{
Frame frm=(Frame)evt.getSource();
frm.setVisible(false);
frm.dispose();
System.exit(0);
}
}

2006-07-19 17:49
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
把画的线存起来

when i want to ask anyone,i will ask myself first.
2006-07-19 21:19
cugdingqiong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-12-11
收藏
得分:0 
怎么存啊,可不可以说详细一点啊

2006-07-19 23:48
快速回复:大家帮下忙~-~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018507 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved