package 
com.mr 
.draw;//类所在的包名
import javax.swing.JFrame;   //引入窗体类
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage; 
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
/*
 * 画图主窗体
 */
public class DrawPictureFrame extends JFrame{
/**
 * 构建方法	
 */
	BufferedImage image=new BufferedImage(570,390,BufferedImage.TYPE_INT_BGR);
	Graphics gs=image.getGraphics(); //获取图像的绘图对象
	Graphics2D g=(Graphics2D)gs;//将绘图对象转换为Graphics2D类型
	DrawPictureCanvas canvas=new DrawPictureCanvas();//创建画布对象
	Color foreColor=Color.BLACK;//定义前景色
	Color backgroundColor=Color.WHITE;//定义背景色
	
	int x=-1;
	int y=-1;
	boolean rubber=false;//橡皮标志变量
	/*
	 * 构建方法,添加组件的初始化方法
	 */
	public DrawPictureFrame() {
		setResizable(false); //窗体不能改变大小
		setTitle("画图程序");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭则停止程序
		setBounds(500,100,574,460);//设置窗口位置和宽高
		init();//组件初始化
		addListener();
	}//DrawPictureFrame()结束
/**
 * 程序运行方法
 * @param args-运行时参数,本程序用不到
 */
	private void init() {
		g.setColor(backgroundColor);//用背景色设置绘图对象的颜色
		g.fillRect(0, 0, 570, 390);//用背景色填充这个背景
	    g.setColor(foreColor);//用前景色设置绘图对象颜色
	    canvas.setImage(image);
	    getContentPane().add(canvas);//将画布添加到窗体容器默认布局的中部位置
	}//intit()结束
	
	private void addListener() {
	//画板添加鼠标移动事件监听
		canvas.addMouseMotionListener(new MouseMotionAdapter() {
			public void mouseDragged(final MouseEvent e) {
				if(x>0 && y>0) {//如果x和y存在鼠标记录
					if(rubber) {//橡皮标识为true,表示使用橡皮
						g.setColor(backgroundColor);
						g.fillRect(x, y,10, 10);
					}
					else {
						g.drawLine(x, y,e.getX(),e.getY());
					}//if结束
				x=e.getX();
				y=e.getY();
				canvas.repaint();//更新画布
				}
			}
		});
		canvas.addMouseListener(new MouseAdapter()
				{
			public void mouseReleased(final MouseEvent arg0) {
				x=-1;
				y=-1;
			}
				});
	}
	
	public static void main(String args[]) {
		DrawPictureFrame frame=new DrawPictureFrame();//创建窗体对象
		frame.setVisible(true);//让窗体可见
	}//main()结束
}//DrawPictureFrame类结束 

	
                                                
购物车
发表新帖
立即签到
                    
                






