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

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

?? drawinginternalframe.java

?? 高級java2 大學教程(含源碼,經典的Java學習教程
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// DrawingInternalFrame.java
// DrawingInternalFrame is a JInternalFrame subclass for 
// DeitelDrawing drawings.
package com.deitel.advjhtp1.drawing;

// Java core packages
import java.awt.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.io.*;
import java.util.*;
import java.util.List;

// Java extension packages
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;

// Deitel packages
import com.deitel.advjhtp1.drawing.model.*;
import com.deitel.advjhtp1.drawing.model.shapes.*;
import com.deitel.advjhtp1.drawing.view.*;
import com.deitel.advjhtp1.drawing.controller.*;

public class DrawingInternalFrame extends JInternalFrame 
   implements Observer {
   
   // offsets to stagger new windows
   private static final int xOffset = 30;
   private static final int yOffset = 30;
   private static int openFrameCount = 0;

   // MVC components
   private DrawingModel drawingModel;
   private DrawingView drawingView;
   private MyShapeController myShapeController;
   private DragAndDropController dragAndDropController;
   private MyShapeControllerFactory shapeControllerFactory;
   
   // file management properties
   private JFileChooser fileChooser;
   private String fileName;
   private String absoluteFilePath;
   private boolean saved = true;
   
   private DrawingToolBar toolBar;
   private ZoomDialog zoomDialog;   
   
   // Actions for save, zoom, move, etc.
   private Action saveAction, saveAsAction, zoomAction, 
      moveAction, fillAction, gradientAction;

   // DrawingInternalFrame constructor
   public DrawingInternalFrame( String title ) 
   {
      super( title + " - " + ( ++openFrameCount ), true, true, 
         false, true );

      setDefaultCloseOperation( 
         WindowConstants.DO_NOTHING_ON_CLOSE );

      // create new DrawingModel
      drawingModel = new DrawingModel();
      
      // create new DrawingView for DrawingModel
      drawingView = new DrawingView( drawingModel );
      
      // register DrawingInternalFrame as a DrawingModel Observer
      drawingModel.addObserver( this );   
      
      // MyShapeControllerFactory for creating MyShapeControllers
      shapeControllerFactory = 
         MyShapeControllerFactory.getInstance();

      // create DragAndDropController for drag and drop operations
      dragAndDropController = 
         new DragAndDropController( drawingModel );
      
      // get default DragSource for current platform
      DragSource dragSource = DragSource.getDefaultDragSource();
      
      // create DragGestureRecognizer to register 
      // DragAndDropController as DragGestureListener
      dragSource.createDefaultDragGestureRecognizer( drawingView,
         DnDConstants.ACTION_COPY_OR_MOVE,
         dragAndDropController );
      
      // enable drawingView to accept drop operations, using
      // dragAndDropController as DropTargetListener
      drawingView.setDropTarget( new DropTarget( drawingView, 
         DnDConstants.ACTION_COPY_OR_MOVE, 
         dragAndDropController ) );

      // add drawingView to viewPanel, put viewPanel in
      // JScrollPane and add JScrollPane to DrawingInternalFrame
      JPanel viewPanel = new JPanel();
      viewPanel.add( drawingView );
      getContentPane().add( new JScrollPane( viewPanel ), 
         BorderLayout.CENTER );
          
      // create fileChooser and set its FileFilter
      fileChooser = new JFileChooser();
      fileChooser.setFileFilter( new DrawingFileFilter() );
      
      // show/hide ZoomDialog when frame activated/deactivated
      addInternalFrameListener( 
         new InternalFrameAdapter() {
         
            // when DrawingInternalFrame activated, make
            // associated zoomDialog visible
            public void internalFrameActivated( 
               InternalFrameEvent event ) 
            {
               if ( zoomDialog != null )  
                  zoomDialog.setVisible( true );
            }

            // when DrawingInternalFrame is deactivated, make
            // associated zoomDialog invisible
            public void internalFrameDeactivated( 
               InternalFrameEvent event ) 
            {
               if ( zoomDialog != null ) 
                  zoomDialog.setVisible( false );
            }
         }
         
      ); // end call to addInternalFrameListener
      
      // stagger each DrawingInternalFrame to prevent it from 
      // obscuring other InternalFrames
      setLocation( xOffset * openFrameCount,
         yOffset * openFrameCount ); 

      // add new DrawingToolBar to NORTH area
      toolBar = new DrawingToolBar();
      getContentPane().add( toolBar, BorderLayout.NORTH );
      
      // get name of first MyShape that shapeControllerFactory
      // supports and create MyShapeController
      String shapeName = 
         shapeControllerFactory.getSupportedShapes()[ 0 ];
      
      setMyShapeController( 
         shapeControllerFactory.newMyShapeController(
            drawingModel, shapeName ) );               
        
      // set DrawingInternalFrame size
      setSize( 500, 320 );   
      
   } // end DrawingInternalFrame constructor
   
   // get DrawingInternalFrame Save Action
   public Action getSaveAction() 
   { 
      return saveAction; 
   }
   
   // get DrawingInternalFrame Save As Action
   public Action getSaveAsAction() 
   { 
      return saveAsAction; 
   }
   
   // set Saved flag for current drawing and update frame
   // title to indicate saved state to user
   public void setSaved( boolean drawingSaved ) 
   {
      // set Saved property
      saved = drawingSaved;
      
      // get current DrawingInternalFrame title
      String title = getTitle();
      
      // if drawing is not saved and title does not end with
      // an asterisk, add asterisk to title
      if ( !title.endsWith( " *" ) && !isSaved() ) 
         setTitle( title + " *" );
      
      // if title ends with * and drawing has been saved, 
      // remove * from title
      else 
         
         if ( title.endsWith( " *" ) && isSaved() ) 
            setTitle( title.substring( 0, 
               title.length() - 2 ) );
      
      // enable save actions if drawing not saved
      getSaveAction().setEnabled( !isSaved() );
   }
   
   // return value of saved property
   public boolean isSaved() 
   { 
      return saved; 
   }
   
   // handle updates from DrawingModel
   public void update( Observable observable, Object object ) 
   { 
      // set saved property to false to indicate that
      // DrawingModel has changed
      setSaved( false ); 
   }
   
   // set fileName for current drawing
   public void setFileName( String file ) 
   {
      fileName = file;
      
      // update DrawingInternalFrame title
      setTitle( fileName );
   }
   
   // get fileName for current drawing
   public String getFileName() 
   { 
      return fileName; 
   }
   
   // get full path (absoluteFilePath) for current drawing
   public String getAbsoluteFilePath() 
   { 
      return absoluteFilePath; 
   }
   
   // set full path (absoluteFilePath) for current drawing
   public void setAbsoluteFilePath( String path ) 
   { 
      absoluteFilePath = path; 
   }
   
   // get DrawingModel for current drawing
   public DrawingModel getModel() 
   { 
      return drawingModel; 
   }
   
   // set JInternalFrame and ZoomDialog titles
   public void setTitle( String title )
   {
      super.setTitle( title );
      
      if ( zoomDialog != null )
         zoomDialog.setTitle( title );
   }
   
   // set MyShapeController for handling user input
   public void setMyShapeController( 
      MyShapeController controller )
   {
      // remove old MyShapeController
      if ( myShapeController != null ) {
         
         // remove mouse listeners
         drawingView.removeMouseListener( 
            myShapeController.getMouseListener() );
         
         drawingView.removeMouseMotionListener( 
            myShapeController.getMouseMotionListener() );
      }
      
      // set MyShapeController property
      myShapeController = controller;
      
      // register MyShapeController to handle mouse events
      drawingView.addMouseListener( 
         myShapeController.getMouseListener() );
      
      drawingView.addMouseMotionListener( 
         myShapeController.getMouseMotionListener() ); 
      
      // update new MyShapeController with currently selected
      // drawing properties (stroke size, color, fill, etc.)
      myShapeController.setStrokeSize( toolBar.getStrokeSize() );
      
      myShapeController.setPrimaryColor( 
         toolBar.getPrimaryColor() );
      
      myShapeController.setSecondaryColor( 
         toolBar.getSecondaryColor() );
      
      myShapeController.setDragMode( toolBar.getDragMode() );
      
      myShapeController.setShapeFilled( 
         toolBar.getShapeFilled() );
      
      myShapeController.setUseGradient( 
         toolBar.getUseGradient() );
      
   } // end method setMyShapeController

   // close DrawingInternalFrame; return false if drawing
   // was not saved and user canceled the close operation
   public boolean close() 
   {
      // if drawing not saved, prompt user to save
      if ( !isSaved() ) {
         
         // display JOptionPane confirmation dialog to allow
         // user to save drawing
         int response = JOptionPane.showInternalConfirmDialog( 
            this, "The drawing in this window has been " +
            "modified.  Would you like to save changes?",
            "Save Changes", JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.QUESTION_MESSAGE );
         
         // if user selects Yes, save drawing and close 
         if ( response == JOptionPane.YES_OPTION ) {        
            saveDrawing();
            dispose();
            
            // return true to indicate frame closed
            return true;
         }
         
         // if user selects No, close frame without saving
         else if ( response == JOptionPane.NO_OPTION ) {            
            dispose();
            return true;
         }
         
         // if user selects Cancel, do not save or close
         else            
            return false; // indicate frame was not closed
      }
      
      // if drawing has been saved, close frame
      else {         
         dispose();
         return true;
      }
      
   } // end method close 
  
   // open existing drawing from file
   public boolean openDrawing() 
   {
      // open JFileChooser Open dialog
      int response = fileChooser.showOpenDialog( this );
      
      // if user selected valid file, open an InputStream
      // and retrieve the saved shapes
      if ( response == fileChooser.APPROVE_OPTION ) {
         
         // get selecte file name
         String fileName = 
            fileChooser.getSelectedFile().getAbsolutePath();
         
         // get shapes List from file
         Collection shapes = 
            DrawingFileReaderWriter.readFile( fileName );
         
         // set shapes in DrawingModel
         drawingModel.setShapes( shapes );
         
         // set fileName property
         setFileName( fileChooser.getSelectedFile().getName() );
         
         // set absoluteFilePath property
         setAbsoluteFilePath( fileName );
         
         // set saved property
         setSaved( true );
         
         // return true to indicate successful file open
         return true;
      }
      
      // return false to indicate file open failed
      else 
         return false;
      

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合给合国产| 中文字幕乱码一区二区免费| 国产精品日韩成人| 99久久er热在这里只有精品15 | 亚洲人xxxx| 欧美探花视频资源| 国产在线国偷精品产拍免费yy| 国产精品蜜臀av| 一区二区三区蜜桃网| 欧美乱妇一区二区三区不卡视频| 国产一区二区日韩精品| 精品一区二区精品| 亚洲美女屁股眼交| 亚洲二区在线视频| 久久久久久久久97黄色工厂| 在线观看网站黄不卡| 国产成人精品亚洲777人妖| 亚洲国产视频直播| 视频在线观看91| 亚洲日本在线看| 国产日韩综合av| 精品久久久久久亚洲综合网| 欧美在线免费播放| 7777精品伊人久久久大香线蕉完整版| 不卡影院免费观看| 国产伦理精品不卡| 国产91色综合久久免费分享| 国模套图日韩精品一区二区| 五月婷婷综合网| 亚洲在线观看免费| 亚洲欧美色一区| 亚洲mv大片欧洲mv大片精品| 综合婷婷亚洲小说| 亚洲成人av在线电影| 免费看欧美女人艹b| 污片在线观看一区二区| 国产一区二区精品在线观看| 91麻豆蜜桃一区二区三区| 国产成人av资源| 91久久线看在观草草青青| 99r国产精品| 欧美二区三区91| 久久综合视频网| 精品捆绑美女sm三区| 国产精品美女一区二区在线观看| 亚洲一区二区三区四区在线| 精品亚洲欧美一区| 色噜噜狠狠色综合欧洲selulu| 91精品国产一区二区人妖| 欧美一区在线视频| 亚洲图片另类小说| 国产一区二区美女诱惑| 欧美精品v国产精品v日韩精品| www精品美女久久久tv| 亚洲中国最大av网站| 国产精品夜夜嗨| 波多野洁衣一区| 色嗨嗨av一区二区三区| 久久久久久久性| 日韩中文字幕亚洲一区二区va在线 | 欧美性一二三区| 欧美激情一区二区三区全黄| 日本在线不卡一区| 久久成人久久鬼色| 国产成人精品在线看| 日韩一区二区免费视频| 精品少妇一区二区三区视频免付费| 亚洲视频你懂的| 国产成人亚洲综合a∨猫咪| 日韩精品影音先锋| 亚洲天堂av老司机| 成人福利电影精品一区二区在线观看 | 日韩欧美高清一区| 午夜视频在线观看一区二区三区| 91欧美一区二区| 国产精品久久久久久久久免费樱桃 | 欧美绝品在线观看成人午夜影视| 综合婷婷亚洲小说| 99久久精品国产观看| 中文字幕国产一区| 成人av电影在线观看| 欧美国产国产综合| 成人天堂资源www在线| 在线观看欧美精品| 亚洲激情图片一区| 国产在线国偷精品免费看| 欧美精品一区二区三区很污很色的 | 欧美视频在线播放| 亚洲最大的成人av| 欧美日韩一区二区三区四区| 国产免费成人在线视频| 国产成人在线网站| 中文字幕一区二区三| 久久精品国产亚洲a| 日韩色在线观看| 国产中文字幕精品| 国产精品理论片在线观看| 97久久精品人人爽人人爽蜜臀| 一区二区中文视频| 欧洲视频一区二区| 免费高清在线视频一区·| 久久久久久免费| 97久久精品人人澡人人爽| 亚洲国产日日夜夜| 精品精品国产高清一毛片一天堂| 久久97超碰国产精品超碰| 久久久一区二区三区| 91浏览器入口在线观看| 日韩专区欧美专区| 久久九九久精品国产免费直播| 美国欧美日韩国产在线播放| 欧美年轻男男videosbes| 亚洲精品大片www| 日韩三级免费观看| 国产凹凸在线观看一区二区| 一区二区三区成人| 26uuu精品一区二区三区四区在线| 国产成人av一区二区| 亚洲午夜激情网站| 久久嫩草精品久久久精品一| 色婷婷av一区| 综合分类小说区另类春色亚洲小说欧美 | 五月激情综合网| 国产欧美一区二区精品仙草咪| 日本大香伊一区二区三区| 国产中文字幕精品| 石原莉奈在线亚洲二区| 成人免费在线观看入口| 精品av久久707| 欧美午夜精品久久久久久孕妇| 国产一区999| 无码av中文一区二区三区桃花岛| 国产精品久久三| 欧美不卡一二三| 欧美三级午夜理伦三级中视频| 国产91综合一区在线观看| 日韩成人午夜电影| 亚洲制服丝袜av| 国产精品高清亚洲| www日韩大片| 日韩午夜中文字幕| 欧美色网一区二区| 一本色道**综合亚洲精品蜜桃冫| 国产一区二区在线视频| 日日夜夜精品视频免费 | 91亚洲大成网污www| 激情综合色播五月| 美国精品在线观看| 日本亚洲免费观看| 日本一不卡视频| 日日摸夜夜添夜夜添精品视频| 一区二区成人在线视频| 亚洲男人都懂的| 亚洲欧美日韩综合aⅴ视频| 国产精品欧美久久久久一区二区| 精品粉嫩aⅴ一区二区三区四区 | 欧美一区二区视频观看视频| 欧美日韩在线播放三区| 91官网在线免费观看| 欧美自拍偷拍一区| 色美美综合视频| 欧美亚一区二区| 91国偷自产一区二区三区观看| 一本久久a久久精品亚洲| 91啦中文在线观看| 欧美日韩在线播放三区| 制服视频三区第一页精品| 欧美一区二区视频在线观看2022| 91精品午夜视频| 欧美一卡二卡在线| 精品久久久久av影院| 久久久国产精品午夜一区ai换脸| 久久亚洲精华国产精华液| 国产三级精品三级在线专区| 中文字幕av一区二区三区高 | 99精品欧美一区二区蜜桃免费| 成人性视频网站| 色爱区综合激月婷婷| 欧美精品久久一区| 精品久久久久久最新网址| 国产精品久久久久久久蜜臀| 亚洲国产一区二区三区| 免费在线观看成人| 激情欧美一区二区| av电影天堂一区二区在线| 欧美日本一道本| 久久久久久久电影| 亚洲欧美另类小说| 蜜桃在线一区二区三区| 成人激情黄色小说| 717成人午夜免费福利电影| 国产视频亚洲色图| 亚洲亚洲人成综合网络| 久久成人久久爱| 在线亚洲一区二区| 91麻豆精品国产91久久久使用方法| 久久一区二区视频| 亚洲五码中文字幕| 丁香六月久久综合狠狠色| 在线国产亚洲欧美|