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 on 2006-02-28 19:02 飄忽著的 閱讀(322) 評論(1)  編輯  收藏

          FeedBack:
          # re: 昨天的作業(畫板)
          2006-02-28 19:53 | dudu
          這樣的文章不要發表到首頁。  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 宣威市| 芜湖县| 江达县| 永定县| 大兴区| 伊通| 安义县| 永平县| 日照市| 保山市| 三都| 凉山| 仁布县| 云安县| 通江县| 江陵县| 夏津县| 罗田县| 青岛市| 镇沅| 策勒县| 红河县| 嘉祥县| 塔河县| 遵义市| 克东县| 三穗县| 象山县| 秦皇岛市| 清水河县| 东宁县| 增城市| 瓦房店市| 东安县| 白玉县| 阿坝县| 山丹县| 高雄县| 六安市| 福州市| 合肥市|