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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? paintboxframe.java

?? 利用java編寫的paintbox小程序
?? JAVA
字號:
/*
 * PaintBoxFrame.java
 *
 * Created on 2007年4月23日, 下午11:56
 *
 * 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 javax.swing.*;
import java.util.*;
import java.io.*;

public class PaintBoxFrame extends JFrame{
    
    /** Creates a new instance of PaintBoxFrame */
   private DrawingPanel drawingPanel;
   private JMenuItem saveMenuItem, saveAsMenuItem;
   private ArrayList currentDrawnItems;
   private Shape copyShape;
   private  JMenuItem cutMenuItem,copyMenuItem,pasteMenuItem,quashMenuItem;
   private JMenu editMenu;

   //-----------------------------------------------------------------
   //  構造函數,構造主窗口
   //-----------------------------------------------------------------
   public PaintBoxFrame ()
   {
      super ("PaintBox ");
      
      copyShape=null;
      ButtonBar buttons = new ButtonBar ();
      drawingPanel = new DrawingPanel (buttons);
      currentDrawnItems=drawingPanel.getDrawnItems();
      JMenuBar menuBar = createMenuBar ();
      setJMenuBar (menuBar);

      JPanel appPanel = new JPanel ();
      appPanel.setLayout (new BorderLayout ());
      appPanel.add (drawingPanel, BorderLayout.CENTER);
      appPanel.add (buttons, BorderLayout.NORTH);

      getContentPane ().add (appPanel);
      addWindowListener (new WindowCloser ());
   }

   //-----------------------------------------------------------------
   //  創建菜單欄(包括“Edit"和"File")
   //-----------------------------------------------------------------
   public JMenuBar createMenuBar ()
   {
      MenuListener menuListener = new MenuListener ();

      JMenu fileMenu = new JMenu ("File");
      fileMenu.addMouseListener (new Listener());

      JMenuItem newMenuItem = new JMenuItem ("New");
      newMenuItem.addActionListener (menuListener);
      newMenuItem.setEnabled (true);

      JMenuItem openMenuItem = new JMenuItem ("Open");
      openMenuItem.addActionListener (menuListener);
      openMenuItem.setEnabled (true);

      saveMenuItem = new JMenuItem ("Save");
      saveMenuItem.addActionListener (menuListener);
      saveMenuItem.setEnabled (true);

      saveAsMenuItem = new JMenuItem ("Save As");
      saveAsMenuItem.addActionListener (menuListener);
      saveAsMenuItem.setEnabled (true);
      
      JMenuItem aboutMenuItem = new JMenuItem ("About...");
      aboutMenuItem.addActionListener (menuListener);
      aboutMenuItem.setEnabled (true);

      JMenuItem exitMenuItem = new JMenuItem ("Exit");
      exitMenuItem.addActionListener (menuListener);

      fileMenu.add (newMenuItem);
      fileMenu.add (openMenuItem);
      fileMenu.add (saveMenuItem);
      fileMenu.add (saveAsMenuItem);
      fileMenu.add (aboutMenuItem);
      fileMenu.addSeparator ();
      fileMenu.addSeparator ();
      fileMenu.add (exitMenuItem);

      JMenu editMenu = new JMenu ("Edit");
      editMenu.addMouseListener(new Listener());

      cutMenuItem = new JMenuItem ("Cut");
      cutMenuItem.addActionListener (menuListener);
      cutMenuItem.setEnabled (false);

      copyMenuItem = new JMenuItem ("Copy");
      copyMenuItem.addActionListener (menuListener);
      copyMenuItem.setEnabled (false);

      pasteMenuItem = new JMenuItem ("Paste");
      pasteMenuItem.addActionListener (menuListener);
      pasteMenuItem.setEnabled (false);
      
      quashMenuItem=new JMenuItem("Quash Color");
      quashMenuItem.addActionListener(menuListener);
      quashMenuItem.setEnabled(false);

      editMenu.add (cutMenuItem);
      editMenu.add (copyMenuItem);
      editMenu.add (pasteMenuItem);
      editMenu.add(quashMenuItem);

      JMenuBar bar = new JMenuBar ();
      bar.add (fileMenu);
      bar.add (editMenu);

      return bar;
   }

  
   
   //*****************************************************************
   //  處理關閉窗口的類(開始)
   //*****************************************************************
   public class WindowCloser extends WindowAdapter
   {
      //--------------------------------------------------------------
      //  Terminates the program when the window is closed.
      //--------------------------------------------------------------
      public void windowClosing (WindowEvent event)
      {
              int save;
              if(!drawingPanel.isSaved())
              {
                  save=JOptionPane.showConfirmDialog(null,"你所畫內容尚未保存,是否要保存?");
                  if(save==JOptionPane.YES_OPTION)
                  {
                      MenuListener listener=new MenuListener();
                      listener.saveItem();
                  }
                      
              }
         System.exit (0);
      }
   }
   //*****************************************************************
   //  處理關閉窗口的類(結束)
   //*****************************************************************

   
   
   
   //*****************************************************************
   //  處理菜單的類(開始)
   //*****************************************************************
   public class MenuListener implements ActionListener
   {
      //--------------------------------------------------------------
      //  Handles action events caused by menu selections.
      //--------------------------------------------------------------
      public void actionPerformed (ActionEvent event)
      {
          String command;
          command=event.getActionCommand ();
          
          if (command.equals ("Exit"))//"Exit"菜單項
          {
              int save;
              if(!drawingPanel.isSaved())
              {
                  save=JOptionPane.showConfirmDialog(null,"你所畫內容尚未保存,是否要保存?");
                  if(save==JOptionPane.YES_OPTION)
                      saveItem();
              }
              System.exit (0);
          }
          
          else if(command.equals("About..."))
          {
              JOptionPane.showMessageDialog
                      (null,"歡迎使用PaintBox\n");
          }
            
          else if(command.equals("New"))//"New"菜單項
          {
              int save;
              if(!drawingPanel.isSaved())
              {
                  save=JOptionPane.showConfirmDialog(null,"你所畫內容尚未保存,是否要保存?");
                  if(save==JOptionPane.YES_OPTION)
                      saveItem();
              }
              currentDrawnItems.clear();
              drawingPanel.setDrawnItems(currentDrawnItems);
              drawingPanel.setOpenFromFile(false);
          }
          
          else if(command.equals("Save As"))//"Save As"菜單項
          {
              drawingPanel.quashSlectedItem();
              JFileChooser jfc=new JFileChooser();
              if(jfc.showSaveDialog(drawingPanel)==JFileChooser.APPROVE_OPTION)
                  save(jfc.getSelectedFile());
              drawingPanel.setOpenFromFile(true);
              drawingPanel.setOpenFile(jfc.getSelectedFile());
              drawingPanel.setSaved();
          }
          
          else if(command.equals("Open"))   //"Open"菜單項
          {
              int save;
              if(!drawingPanel.isSaved())
              {
                  save=JOptionPane.showConfirmDialog(null,"你沒有保存,是否要保存?");
                  if(save==JOptionPane.YES_OPTION)
                      saveItem();
              }
              JFileChooser jfc=new JFileChooser();
              if(jfc.showOpenDialog(drawingPanel)==JFileChooser.APPROVE_OPTION)
                  open(jfc.getSelectedFile()); 
              drawingPanel.setOpenFromFile(true);
              drawingPanel.setOpenFile(jfc.getSelectedFile());
          }
          
          else if(command.equals("Save"))
          {
              drawingPanel.quashSlectedItem();//先取消選擇
               saveItem();//此處本應該和"Save AS"菜單項一樣實現,但為了在"New"、"Open"中引用相同處理過程,故單獨處理
               drawingPanel.setSaved();
          }
          
          else if(command.equals("Copy"))
          {
              if(drawingPanel.getSlectedItem()!=-1)
              {
                  copyShape=(Shape)((Shape)(currentDrawnItems.get(drawingPanel.getSlectedItem()))).clone();
                  pasteMenuItem.setEnabled(true);
                  drawingPanel.quashSlectedItem();
                  
              }
          }
          
          else if(command.equals("Cut"))
          {
              if(drawingPanel.getSlectedItem()!=-1)
              {
                  copyShape=(Shape)(currentDrawnItems.get(drawingPanel.getSlectedItem()));
                  currentDrawnItems.remove(drawingPanel.getSlectedItem());
                  drawingPanel.setDrawnItems(currentDrawnItems);
                  pasteMenuItem.setEnabled(true);
              } 
          }
          
          else if(command.equals("Paste"))
          {
              Shape shape=(Shape)copyShape.clone();
              copyShape=shape;
              shape.positionChanged(10,10);
              currentDrawnItems.add(shape);
              drawingPanel.setDrawnItems(currentDrawnItems);
          }
          
          else if(command.equals("Quash Color"))
          {
              if(drawingPanel.getSlectedItem()!=-1)
              {
                  ((BoundedShape)(currentDrawnItems.get(drawingPanel.getSlectedItem()))).setUnFilled();
                  drawingPanel.quashSlectedItem();
                  drawingPanel.setDrawnItems(currentDrawnItems);
              } 
          }
      }
      
      public  void saveItem()     //保存函數(同時被“SAVE”菜單項和刷新視區時調用)
      {
           if(drawingPanel.isOpenFromFile())
           {
               save(drawingPanel.getOpenFile());
           }
           else
           {
              JFileChooser jfc=new JFileChooser();
              if(jfc.showSaveDialog(drawingPanel)==JFileChooser.APPROVE_OPTION)
                  save(jfc.getSelectedFile());
              drawingPanel.setOpenFromFile(true);
              drawingPanel.setOpenFile(jfc.getSelectedFile());
              drawingPanel.setSaved();
           }
      }
              
      private void save(File file)    //內部函數,執行保存過程
      {
         ObjectOutputStream out;
          try{
              out=new ObjectOutputStream(new FileOutputStream(file));
              Integer inte=new Integer(currentDrawnItems.size());
              out.writeObject(inte);
              for(int i=0; i<currentDrawnItems.size(); i++)
                    out.writeObject(currentDrawnItems.get(i));
              out.close();
          }
          catch(IOException ex)
          {
              System.out.println(ex);
          }
      }
      
      private void open(File file)  //內部函數,執行打開過程
      {
         ObjectInputStream in;
          try{
              in=new ObjectInputStream(new FileInputStream(file));
              Integer inte=(Integer)in.readObject();
              int objectNum=inte.intValue();
              currentDrawnItems.clear();
              for(int i=0; i<objectNum; i++)
                    currentDrawnItems.add((Shape)in.readObject());
              in.close();
          }
          catch(IOException ex)
          {
              System.out.println(ex);
          }
         catch(ClassNotFoundException ex2)
         {
             System.out.println(ex2);
         }
         drawingPanel.setDrawnItems(currentDrawnItems);
      }     
   }
   
   //*****************************************************************
   //  處理菜單的類(結束)
   //*****************************************************************
   
   
   
   //*****************************************************************
   //  控制菜單中菜單項可不可用的類(開始)
   //*****************************************************************
   private class Listener extends MouseAdapter
   {
       public void mouseEntered(MouseEvent event)
       {
               if(drawingPanel.getSlectedItem()!=-1)
               {
                   cutMenuItem.setEnabled(true);
                   copyMenuItem.setEnabled(true);
                   if(currentDrawnItems.get(drawingPanel.getSlectedItem()) instanceof BoundedShape)
                   {
                       quashMenuItem.setEnabled(true);
                   }
                   else
                       quashMenuItem.setEnabled(false);
               }
               else
               {
                   cutMenuItem.setEnabled(false);
                   copyMenuItem.setEnabled(false);
                   quashMenuItem.setEnabled(false);
               }  
               if(drawingPanel.isSaved())
                   saveMenuItem.setEnabled(false);
               else
                   saveMenuItem.setEnabled(true);
       }
   }
   //*****************************************************************
   //  控制"Edit"菜單中類可不可用的類(結束)
   //*****************************************************************
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产电影一区二区| 国产精品私人自拍| 成人教育av在线| 午夜av一区二区| 国产精品免费久久| 日韩视频在线观看一区二区| 99re热这里只有精品视频| 久久国产尿小便嘘嘘| 亚洲综合免费观看高清在线观看| 久久精品夜色噜噜亚洲a∨| 欧美精品日日鲁夜夜添| 成人aa视频在线观看| 精品在线一区二区三区| 午夜亚洲福利老司机| 国产精品电影一区二区| 精品噜噜噜噜久久久久久久久试看 | 懂色av噜噜一区二区三区av| 三级久久三级久久久| 亚洲另类春色国产| 中文字幕成人在线观看| 26uuu久久天堂性欧美| 欧美日韩你懂得| 91国在线观看| 色综合一个色综合亚洲| 成人一区在线观看| 精品在线一区二区| 男女性色大片免费观看一区二区 | 在线视频一区二区免费| 99热精品国产| 成人v精品蜜桃久久一区| 国产精品888| 国产麻豆精品视频| 国产在线精品一区二区不卡了 | 99精品欧美一区二区三区小说| 久久99国产精品久久| 欧美影院一区二区三区| 色婷婷av一区二区三区大白胸| www.爱久久.com| 丁香婷婷深情五月亚洲| 国产成a人亚洲| 成人avav影音| 一本大道久久a久久精品综合| 91在线视频播放| 色综合亚洲欧洲| 欧美亚洲国产怡红院影院| 欧美性生活久久| 7777精品伊人久久久大香线蕉完整版 | 国产91在线看| 成人av网站在线观看免费| bt7086福利一区国产| 色综合欧美在线| 欧美性感一类影片在线播放| 欧美日韩中字一区| 欧美精品乱码久久久久久| 欧美一区二区网站| 精品粉嫩超白一线天av| 久久精品亚洲麻豆av一区二区| 国产欧美日韩视频在线观看| 亚洲欧美一区二区在线观看| 亚洲精选视频在线| 日精品一区二区| 国产在线精品一区二区不卡了| 豆国产96在线|亚洲| 91丨九色丨蝌蚪丨老版| 欧美美女一区二区| 欧美精品一区二区久久久| 国产拍欧美日韩视频二区| 亚洲色图在线看| 亚洲成人中文在线| 国内精品国产成人| 99精品欧美一区二区蜜桃免费| 欧洲一区二区三区免费视频| 欧美福利视频一区| 久久久国际精品| 亚洲日本一区二区| 老汉av免费一区二区三区| 成人的网站免费观看| 欧美日韩在线观看一区二区| 亚洲精品一区二区在线观看| 亚洲色图色小说| 日韩av中文字幕一区二区三区| 国产成a人亚洲| 欧美丰满美乳xxx高潮www| 久久免费国产精品| 一区二区三区产品免费精品久久75| 麻豆精品久久久| 一本一道波多野结衣一区二区| 日韩精品一区在线| 亚洲精品国产精华液| 国产在线播放一区| 欧美视频一区在线观看| 欧美激情一区二区| 免费人成精品欧美精品| 91丨porny丨户外露出| 26uuu精品一区二区| 一区二区免费在线| 国产丝袜美腿一区二区三区| 一区二区不卡在线播放| 蜜桃视频一区二区三区在线观看| 国产风韵犹存在线视精品| 欧美色图一区二区三区| 欧美v日韩v国产v| 亚洲日本在线a| 韩国欧美一区二区| 色88888久久久久久影院按摩| 在线观看网站黄不卡| 欧美tickling挠脚心丨vk| 亚洲人成亚洲人成在线观看图片| 日日夜夜免费精品视频| 成人教育av在线| 精品三级在线看| 亚洲蜜桃精久久久久久久| 亚洲国产精品一区二区www在线| 视频一区国产视频| 91原创在线视频| 久久久噜噜噜久久人人看| 亚洲国产精品久久人人爱蜜臀| 国产高清精品网站| 一本大道久久a久久精品综合| 国产日产亚洲精品系列| 日韩一区精品视频| 一本到不卡免费一区二区| 国产亚洲午夜高清国产拍精品| 亚洲国产精品久久久久婷婷884 | 在线成人av网站| 亚洲一区二区三区四区的 | 日本不卡123| 日本道精品一区二区三区| 欧美国产丝袜视频| 成人精品国产福利| 久久久www免费人成精品| 欧美aaaaa成人免费观看视频| 91成人免费在线| 亚洲乱码国产乱码精品精可以看 | 在线日韩av片| 亚洲欧美日本韩国| 99久久国产综合色|国产精品| 精品国产精品网麻豆系列| 人人爽香蕉精品| 制服视频三区第一页精品| 伊人夜夜躁av伊人久久| 91在线观看美女| 久久综合色天天久久综合图片| 国产在线观看一区二区| 欧美一区二区视频在线观看| 欧美伊人久久大香线蕉综合69 | 久久国产精品99久久久久久老狼 | 97国产一区二区| 中文在线一区二区| 菠萝蜜视频在线观看一区| 日韩一区和二区| 国内精品国产三级国产a久久| 日韩精品一区二区三区四区| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩三级高清在线| 五月天网站亚洲| 69精品人人人人| 奇米一区二区三区av| 制服丝袜中文字幕一区| 免费欧美高清视频| 国产亚洲精品久| 成人国产精品免费观看动漫| 国产精品久久一卡二卡| 99久久er热在这里只有精品66| 亚洲桃色在线一区| 国产成人亚洲精品青草天美| 99在线精品观看| 洋洋成人永久网站入口| 欧美情侣在线播放| 麻豆专区一区二区三区四区五区| 欧美电影免费观看高清完整版在线 | 99在线精品观看| 亚洲综合在线第一页| 欧美另类videos死尸| 日本亚洲视频在线| 欧美精品一区二区精品网| 99国产精品久| 一区二区三区四区在线播放| 欧美色窝79yyyycom| 久久精品国产99| 欧美高清在线视频| 99re热这里只有精品免费视频| 人禽交欧美网站| 国产欧美一区二区精品久导航| 91亚洲精品久久久蜜桃| 视频一区二区国产| 国产偷国产偷精品高清尤物| 波多野结衣一区二区三区| 亚洲伊人色欲综合网| 日韩精品最新网址| 成人18视频在线播放| 天天免费综合色| 亚洲精品一区二区三区精华液 | 色悠悠久久综合| 日韩精品久久久久久| 日本一区二区在线不卡| 日韩精品一区二区三区视频| 97久久精品人人澡人人爽| 免费av成人在线| 亚洲乱码国产乱码精品精98午夜|