posts - 1,comments - 1,trackbacks - 0

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;
public class mouse implements ActionListener, WindowListener, MouseMotionListener, MouseListener
{
 Frame f;

 

 TextField t=new TextField();
 int j;
 int x,y;
 Graphics g,g_in;
 int x1,y1;
 BufferedImage i;

 Panel p1=new Panel(new GridLayout(2,3));

 Button b1=new Button("红色");
 Button b2=new Button("黄色");
 Button b3=new Button("蓝色");
 Button b4=new Button("绿色");
 Button b5=new Button("矩形");
 Button b6=new Button("圆形");
 
  
 mouse()
 {
  
  
  
 
  t.setEnabled(false);
  
  f=new Frame("画图!");
  
  p1.add(b1);
  p1.add(b2);
  p1.add(b3);
  p1.add(b4);
  p1.add(b5);
  p1.add(b6);
  
  b1.addActionListener(this);
  b2.addActionListener(this);
  b3.addActionListener(this);
  b4.addActionListener(this);
  b5.addActionListener(this);
  b6.addActionListener(this);
  
  f.add(t,BorderLayout.NORTH);
  f.add(p1,BorderLayout.EAST);
  
  
  f.setSize(400,400);
  int w=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
  int h=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
  
  f.setLocation((w-400)/2,(h-400)/2);
  f.setBackground(Color.ORANGE);
    
  f.setResizable(false); 
  f.setVisible(true);
  f.addWindowListener(this);
  f.addMouseListener(this);
  f.addMouseMotionListener(this);
  this.getG();
  
 }
 public void getG()
 {
  f.addMouseListener(this); 
  this.g=f.getGraphics();
  i=new BufferedImage(f.getWidth(),f.getHeight(),BufferedImage.TYPE_INT_RGB);
  g_in=i.getGraphics();
  
  
  g_in.setColor(Color.white);
  g_in.fill3DRect(0,0,i.getWidth(),i.getHeight(),true);
 
 }
 
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==b1)
  {
   g.setColor(Color.red);
   g_in.setColor(Color.red);
  }
  else if(e.getSource()==b2)
  {
   g.setColor(Color.yellow);
   g_in.setColor(Color.yellow);
  }
  else if(e.getSource()==b3)
  {
   g.setColor(Color.blue);
   g_in.setColor(Color.blue);
  }
  else if(e.getSource()==b4)

  {
   g.setColor(Color.green);
   g_in.setColor(Color.green);
  }
  else if(e.getSource()==b5)
  {
   j=0;
  }
  else if(e.getSource()==b6)
  {
   j=1;
  }
 
  
  
    
 }
 
 public static void main(String args[])
 {
  mouse my=new mouse();
 }

 public void windowOpened(WindowEvent e) {
 
 }

 public void windowClosing(WindowEvent e) {
 try
  {
   ByteArrayOutputStream is=new ByteArrayOutputStream();//创建一个字节类型数据的数据区
   
   JPEGImageEncoder coder=JPEGCodec.createJPEGEncoder(is);
   //声明此数据区只能保存JPG格式的数据
   
   coder.encode(i);
   //从内存i图片中提取JPG格式数据,保存到数据区
   
   FileOutputStream fo=new FileOutputStream("a.jpg");
   
   byte[] b=is.toByteArray();//将数据提取成字节数组
   
   fo.write(b);//将数据写入a.jpg文件中
   fo.close();//关闭文件的写入
   
   f.dispose();
   
   JOptionPane.showMessageDialog(null,"图片已保存为a.jpg,请察看!"); 
    
  }catch(Exception el){}
 }

 public void windowClosed(WindowEvent e) {
 
 }

 public void windowIconified(WindowEvent e) {
 
 }

 public void windowDeiconified(WindowEvent e) {
 
 }

 public void windowActivated(WindowEvent e) {
  
 }

 public void windowDeactivated(WindowEvent e) {
  
 }

 public void mouseDragged(MouseEvent e) {
  // TODO: Add your code here
 }

 

 public void mouseMoved(MouseEvent e) {
 t.setText("X:"+e.getX()+"Y:"+e.getY()); 
  
 }

 public void mouseClicked(MouseEvent e) {
  // TODO: Add your code here
 }

 public void mousePressed(MouseEvent e) {
  x=e.getX();y=e.getY();
 
 }

 public void mouseReleased(MouseEvent e) {
  
  x1=e.getX();y1=e.getY();
   if (j==1)
   {
    if(x1>=x)
    {
   if(y1>=y)
   {
   g.fillOval(x,y,x1-x,y1-y);
   g_in.fillOval(x,y,x1-x,y1-y);
   }
   else if(y1<y)
   {
   g.fillOval(x,y1,x1-x,y-y1);
   g_in.fillOval(x,y1,x1-x,y-y1);
   }
  }
  
  else if(x1<x)
  {
   if(y1<y)
   {
   g_in.fillOval(x1,y1,x-x1,y-y1);
   g.fillOval(x1,y1,x-x1,y-y1);
   }
   else if(y1>=y)
   {
    g.fillOval(x1,y,x-x1,y1-y);
    g_in.fillOval(x1,y,x-x1,y1-y);
   }
  }}
  else if(j==0)
  {
   if(x1>=x)
    {
   if(y1>=y)
   {
  g.fillRect(x,y,x1-x,y1-y);
  g_in.fillRect(x,y,x1-x,y1-y);
   }
   else if(y1<y)
   {
  g.fillRect(x,y1,x1-x,y-y1);
  g_in.fillRect(x,y1,x1-x,y-y1);
   }
  }
  
  else if(x1<x)
  {
   if(y1<y)
   {
   g.fillRect(x1,y1,x-x1,y-y1);
   g_in.fillRect(x1,y1,x-x1,y-y1);
   }
   else if(y1>=y)
   {
    g.fillRect(x1,y,x-x1,y1-y);
    g_in.fillRect(x1,y,x-x1,y1-y);
   }
  }
  }
  
  
 
 }

 public void mouseEntered(MouseEvent e) {
  
 }

 public void mouseExited(MouseEvent e) {
  // TODO: Add your code here
 }
 
 
  
 
 }

posted @ 2006-02-28 19:02 飘忽着的 阅读(319) | 评论 (1)编辑 收藏
仅列出标题