⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw.java

📁 该压缩文件中共包含16个非常实用的java学习实例
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;



public class draw extends Frame implements ActionListener, MouseListener 
{
	Button xian =new Button("线");
	Button fang =new Button("矩形");
	Button yuan =new Button("圆");
	Button hong =new Button("红");
	Button lv =new Button("绿");
	Button lan =new Button("蓝");
	Panel p1,p2;
	//六个按钮和2个面板
	Graphics g;//画笔
	Color c;   //用来保存用户选择的颜色
	int xingzhuang;//用来保存用户选择的形状
	int x,y;      //用来保存用户按下鼠标开始坐标
	boolean b=false;  //判断用户是否已经选择了要画图
		
	draw() 
	{
		c=Color.blue;
		xingzhuang=x=y=0;//初始化参数	
		p1=new Panel(new GridLayout(2,3));
		
		p1.add(xian);
		p1.add(fang);
		p1.add(yuan);
		p1.add(hong);
		p1.add(lv);
		p1.add(lan);
		
		p2=new Panel();
		this.add(p1,"North");
		this.add(p2,"Center");//设置布局
		
		
		p2.addMouseListener(this);//为画图的面板添加鼠标监听
		
		
		xian.addActionListener(this);
		fang.addActionListener(this);
		yuan.addActionListener(this);
		hong.addActionListener(this);
		lv.addActionListener(this);
		lan.addActionListener(this); //为按钮添加监听
		
		this.setTitle("一个简单的画图程序");
		this.setSize(400,400);
		Dimension d=Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕大小
		this.setLocation((d.width-400)/2,(d.height-400)/2);//设置本窗口居中
		this.setResizable(false);//设置本窗口不可以再调整大小
		this.setVisible(true);
		this.addWindowListener(new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					System.exit(0);
				}
			});
	}
	public void get()
	{
		
		g=p2.getGraphics();//获得面板的画笔
		g.setXORMode(Color.white);//在画图有覆盖的地方用白色中和
		
	}
	
	public static void main(String args[])
	{
		draw my=new draw();//显示窗口
		my.get();//获得画笔
	}
	
	
	public void actionPerformed(ActionEvent e) 
	{
		String str=e.getActionCommand();//获得按钮上的标签值
		if(str.equals("线"))
			{
				xingzhuang=1;
				b=true;
			}
			else if(str.equals("矩形"))
				{
					xingzhuang=2;
					b=true;
				}
					else if(str.equals("圆"))
					{
						xingzhuang=3;
						b=true;
					}//如果是点击的图形按钮,将形状记录下来,并将绘画状态设置为真
						else if(str.equals("红"))
							c=Color.red;
							else if(str.equals("绿"))
								c=Color.green;
								else
									c=Color.blue;//如果是点击的颜色按钮,将颜色记录下来
	}
	public void mousePressed(MouseEvent e) 
	{//鼠标按下后,记录坐标,如果画图状态为真就把鼠标的指针改变
		x=e.getX();
		y=e.getY();
		if(b==true)
			this.setCursor(Cursor.CROSSHAIR_CURSOR);
	}

	public void mouseReleased(MouseEvent e) 
	{//鼠标释放后,如果画图状态为真才开始画图,否则不予理睬,并将鼠标的指针恢复
		if(b==true)
			this.setCursor(Cursor.DEFAULT_CURSOR);
		if(b==true)
		{
			g.setColor(c);//首先将画笔的颜色设置为用户选择的颜色
			switch(xingzhuang)
			{//然后根据不同的形状,画出不同的图形
				case 1:
					g.drawLine(x,y,e.getX(),e.getY());
					break;
				case 2:
					g.fill3DRect(x,y,e.getX(),e.getY(),true);
					break;
				case 3:
					g.fillOval(x,y,e.getX(),e.getY());
					break;
			}
		}
	}
	public void mouseClicked(MouseEvent parm1){}

	public void mouseEntered(MouseEvent parm1){}

	public void mouseExited(MouseEvent parm1) {}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -