亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drawingpanel.java

?? 利用java編寫的paintbox小程序
?? JAVA
字號:
/*
 * DrawingPanel.java
 *
 * Created on 2007年4月23日, 下午11:58
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package paintbox;

/**
 *
 * @author fly
 */

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

public class DrawingPanel extends JPanel implements MouseListener,MouseMotionListener{
    
    /** Creates a new instance of DrawingPanel */
    
   public static final int DRAWAREA = 600;

   private ButtonBar buttonBar;
   private ArrayList drawnItems;
   private File openFile;        //畫布上的圖形是從哪個(gè)文件中打開的
   private boolean openFromFile;   //說明畫布上的圖形是不是從文件中打開的
   private boolean saved;            //畫布上的圖形是否已經(jīng)保存
   private Shape currentShape;
   private Point basePoint, currentPoint, frontPoint;
   private int lastShape;
   private int slectedItem;    //被選圖形在“drawnItems”中的下標(biāo)
   
   public DrawingPanel (ButtonBar buttons)
   {
      buttonBar = buttons;
      slectedItem=-1;    //初始為-1,表明沒有圖形被選中

      drawnItems = new ArrayList ();
      openFromFile=false;
      saved=true;

      lastShape = ButtonBar.SELECT;

      setBackground (Color.white);
      setMinimumSize (new Dimension (DRAWAREA, DRAWAREA));
      setPreferredSize (new Dimension (DRAWAREA, DRAWAREA));

      addMouseListener (this);
      addMouseMotionListener (this);
   }
   
   public boolean isSaved()
   {
       return saved;
   }
   
   public void setSaved()
   {
       saved=true;
   }
   
   public void setUnSaved()
   {
       saved=false;
   }
   
   public boolean isOpenFromFile()
   {
       return openFromFile;
   }
   
   public void setOpenFromFile(boolean f)
   {
       openFromFile=f;
   }
   
   public void setOpenFile(File file)
   {
       openFile=file;
   }
   
   public File getOpenFile()
   {
       return openFile;
   }
   
   public ArrayList getDrawnItems()
   {
       return drawnItems;
   }
   
   public void setDrawnItems(ArrayList drawnItems)
   {
       this.drawnItems=drawnItems;
       repaint();
   }
   
   public int getSlectedItem()
   {
       return slectedItem;
   }
   
   public void quashSlectedItem()
   {
       if(slectedItem!=-1)
       {
           ((Shape)drawnItems.get(slectedItem)).setUnSlected();
           slectedItem=-1;
           repaint();
       }

       
   }
       
   
   public void paintComponent (Graphics page)
   {
      super.paintComponent (page);

      if (drawnItems.size () > 0)
         for (int index = 0; index <= drawnItems.size ()-1; index++)
            ((Shape) drawnItems.get (index)).draw (page);
          
   }
   
   public void mousePressed (MouseEvent event)
   {
      int currentAction = buttonBar.getButton ();
      Color strokeColor = buttonBar.getStrokeColor ();
      Color fillColor=buttonBar.getcurrentFillColor();
      quashSlectedItem();

      basePoint = event.getPoint ();
      frontPoint=basePoint;

      switch (currentAction)
      {
         case ButtonBar.SELECT:                           //以下代碼實(shí)現(xiàn)圖形的選定
            lastShape = ButtonBar.SELECT;
            if(slectedItem!=-1){
                 ((Shape)drawnItems.get(slectedItem)).setUnSlected();
                 slectedItem=-1;
            }
            for(int n=drawnItems.size()-1; n>=0; n--)
            {
                if(((Shape)drawnItems.get(n)).isSlected(basePoint))
                {
                    ((Shape)drawnItems.get(n)).setSlected();
                    slectedItem=n;
                     break;
                }
              
            }
            break;

         case ButtonBar.LINE:
            currentShape = new Line (strokeColor, basePoint,
                                     basePoint);
            lastShape = ButtonBar.LINE;
            drawnItems.add (currentShape);
            setUnSaved();
            break;

         case ButtonBar.OVAL:
            currentShape = new Oval (strokeColor, basePoint, 0, 0);
            lastShape = ButtonBar.OVAL;
            drawnItems.add (currentShape);
            setUnSaved();
            break;

         case ButtonBar.RECT:
            currentShape = new Rect (strokeColor, basePoint, 0, 0);
            lastShape = ButtonBar.RECT;
            drawnItems.add (currentShape);
            setUnSaved();
            break;

         case ButtonBar.POLY:
            if (lastShape == ButtonBar.POLY)
               ((Poly) currentShape).updateLastPoint (basePoint.x,
                                                      basePoint.y);
            else
            {
               lastShape = ButtonBar.POLY;
               currentShape = new Poly (strokeColor, basePoint.x,
                                        basePoint.y);
               drawnItems.add (currentShape);
            }
            ((Poly) currentShape).addPoint (basePoint.x, basePoint.y);
            setUnSaved();
            break;
            
         case ButtonBar.FILLCOLOR:
            for(int n=drawnItems.size()-1; n>=0; n--)
            {
                if(((Shape)drawnItems.get(n)).isSlected(basePoint))
                {
                   if((Shape)drawnItems.get(n) instanceof BoundedShape)
                   {
                       ((BoundedShape)drawnItems.get(n)).setFilled(fillColor);
                       setUnSaved();
                   }
                   break;
                }
              
           }
           break;
       
         case ButtonBar.COLOR:
            for(int n=drawnItems.size()-1; n>=0; n--)
            {
                if(((Shape)drawnItems.get(n)).isSlected(basePoint))
                {
                       ((Shape)drawnItems.get(n)).setStrokeColor(strokeColor);
                       setUnSaved();
                   break;
                }
              
           }
           break;
              
      }
          
      repaint ();
   }
   
   public void mouseDragged (MouseEvent event)
   {
      int currentAction = buttonBar.getButton ();

      currentPoint = event.getPoint ();
      switch (currentAction)
      {    
         case ButtonBar.SELECT:
             int xChanged,yChanged;
             if(slectedItem!=-1)
             {
                 xChanged=currentPoint.x-frontPoint.x;
                 yChanged=currentPoint.y-frontPoint.y;
                 frontPoint=currentPoint;
                 ((Shape)drawnItems.get(slectedItem)).positionChanged(xChanged,yChanged);
                 setUnSaved();
             }
             break;
         case ButtonBar.LINE:
            ((Line) currentShape).setEndPoint (currentPoint);
            setUnSaved();
            break;

         case ButtonBar.OVAL:
            ((Oval) currentShape).setShape (basePoint, currentPoint);
            setUnSaved();
            break;

         case ButtonBar.RECT:
            ((Rect) currentShape).setShape (basePoint, currentPoint);
            setUnSaved();
            break;

         case ButtonBar.POLY:
            ((Poly) currentShape).updateLastPoint (currentPoint.x,
                                                   currentPoint.y);
            setUnSaved();
            break;
      }
      
      repaint ();
   }  
   
   public void mouseMoved (MouseEvent event) {}
   public void mouseReleased (MouseEvent event) {}
   public void mouseEntered (MouseEvent event) {}
   public void mouseExited (MouseEvent event) {}
   public void mouseClicked (MouseEvent event) {}   
   
}





?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区精品网| 亚洲精品一区二区精华| 中文字幕一区二区不卡| 成人国产精品免费观看动漫| 久久久亚洲国产美女国产盗摄 | 美腿丝袜亚洲综合| 91精品啪在线观看国产60岁| 日韩主播视频在线| 欧美刺激午夜性久久久久久久| 免费成人在线观看| 久久久五月婷婷| 99v久久综合狠狠综合久久| 伊人性伊人情综合网| 欧美亚洲动漫制服丝袜| 视频一区二区不卡| 精品国产一区二区三区忘忧草| 懂色av一区二区在线播放| 中文字幕在线一区二区三区| 欧美日韩视频一区二区| 美女视频黄a大片欧美| 国产精品污www在线观看| 色系网站成人免费| 乱一区二区av| 亚洲欧美综合另类在线卡通| 3d动漫精品啪啪1区2区免费| 国产精品一区二区黑丝| 一区二区三区国产豹纹内裤在线| 日韩亚洲欧美中文三级| 成人午夜又粗又硬又大| 偷拍自拍另类欧美| 久久久久久亚洲综合影院红桃| 一本一道综合狠狠老| 美日韩一区二区| 亚洲日本中文字幕区| 欧美成人vr18sexvr| 91老司机福利 在线| 久久成人免费电影| **性色生活片久久毛片| 日韩欧美国产小视频| 91美女视频网站| 激情亚洲综合在线| 亚洲丰满少妇videoshd| 中文字幕欧美日韩一区| 91精品国产综合久久久久久久| 东方aⅴ免费观看久久av| 青娱乐精品在线视频| 亚洲精品日产精品乱码不卡| 精品欧美久久久| 欧美日韩精品系列| 99在线精品一区二区三区| 韩国在线一区二区| 五月婷婷综合网| 亚洲男人的天堂一区二区| 久久精品一区二区| 亚洲成人先锋电影| 亚洲国产高清在线| 欧美草草影院在线视频| 69堂精品视频| 欧洲精品一区二区| 91原创在线视频| 成人免费看黄yyy456| 国内精品久久久久影院一蜜桃| 午夜精品一区在线观看| 亚洲综合在线免费观看| 国产精品福利影院| 国产精品免费人成网站| 久久久www成人免费无遮挡大片| 91精品黄色片免费大全| 7777精品伊人久久久大香线蕉经典版下载 | 蜜桃精品视频在线| 奇米精品一区二区三区在线观看一| 亚洲香肠在线观看| 亚洲一区二区av在线| 亚洲小说欧美激情另类| 亚洲国产精品嫩草影院| 亚洲国产日产av| 亚洲午夜激情网页| 亚洲国产va精品久久久不卡综合| 亚洲一区在线观看免费| 亚洲狠狠爱一区二区三区| 一区二区免费看| 亚洲一区二区在线观看视频| 亚洲综合小说图片| 午夜婷婷国产麻豆精品| 亚洲成人av在线电影| 亚洲电影在线免费观看| 无码av免费一区二区三区试看| 五月天中文字幕一区二区| 日韩电影一二三区| 久久国产精品区| 国产乱码精品一品二品| 懂色av一区二区夜夜嗨| 色伊人久久综合中文字幕| 欧美精品在线视频| 日韩欧美国产电影| 欧美激情一区三区| 亚洲裸体xxx| 亚洲国产视频在线| 久久激情五月婷婷| 成人一区二区三区在线观看| 色婷婷av一区二区三区软件| 欧美婷婷六月丁香综合色| 欧美日韩小视频| 精品国产一区久久| 中文字幕一区二区三区精华液| 亚洲一区中文日韩| 极品美女销魂一区二区三区| 高清在线观看日韩| 欧美亚洲一区二区在线观看| 91麻豆精品国产91久久久久久| xnxx国产精品| 一区二区三区四区五区视频在线观看 | 国产女同性恋一区二区| 亚洲欧洲日韩在线| 午夜av区久久| 成人永久aaa| 欧美一区二区久久久| 欧美国产精品一区二区| 亚洲动漫第一页| 国产丶欧美丶日本不卡视频| 欧美亚洲动漫精品| 久久精品水蜜桃av综合天堂| 洋洋av久久久久久久一区| 国产伦精品一区二区三区视频青涩| 99精品欧美一区二区三区小说| 3751色影院一区二区三区| 国产精品青草综合久久久久99| 三级欧美在线一区| 成人aaaa免费全部观看| 欧美一区二区三区免费视频| 亚洲少妇30p| 精品制服美女丁香| 欧美午夜视频网站| 国产精品大尺度| 久久国产尿小便嘘嘘| 欧美日韩一卡二卡三卡 | 日韩视频国产视频| 一区二区三区波多野结衣在线观看 | 中文字幕精品三区| 青娱乐精品视频| 在线看不卡av| 国产精品免费av| 国产精品性做久久久久久| 8x福利精品第一导航| 亚洲精品写真福利| 成人免费黄色在线| 久久精品免视看| 久久精品噜噜噜成人av农村| 欧美日韩一级片在线观看| 亚洲精品中文字幕乱码三区| 成人激情免费电影网址| 欧美精品一区二区蜜臀亚洲| 日本网站在线观看一区二区三区| 91久久精品一区二区三| 亚洲日本中文字幕区| av日韩在线网站| 中文字幕在线一区| 成人福利视频网站| 国产日韩欧美制服另类| 国产一区美女在线| 欧美v日韩v国产v| 美女视频一区二区三区| 欧美一级日韩不卡播放免费| 香蕉加勒比综合久久| 欧美美女网站色| 午夜精品免费在线| 7777精品伊人久久久大香线蕉的 | 国产精品情趣视频| 成人网页在线观看| 精品影视av免费| 欧美电影免费观看高清完整版在 | 亚洲444eee在线观看| 欧美日韩免费高清一区色橹橹| 亚洲精品成a人| 欧美性videosxxxxx| 亚洲动漫第一页| 欧美一区二区三区播放老司机| 青青草视频一区| 日韩精品一区国产麻豆| 狠狠色狠狠色合久久伊人| 久久亚洲精精品中文字幕早川悠里| 黄色资源网久久资源365| 欧美激情一区二区三区蜜桃视频| 国产成人丝袜美腿| 亚洲视频小说图片| 欧美日韩国产一二三| 久久精品国产99久久6| 国产拍欧美日韩视频二区| 成人精品国产一区二区4080| 一区二区三区在线影院| 欧美日韩国产精选| 久久成人精品无人区| 国产精品国产三级国产专播品爱网| 99re成人精品视频| 污片在线观看一区二区| 国产欧美日韩精品a在线观看| 91麻豆国产精品久久| 日韩国产在线观看一区| 国产日韩欧美高清| 欧美性生活久久|