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

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

?? drawingfilereaderwriter.java

?? 高級java2 大學教程(含源碼,經典的Java學習教程
?? JAVA
字號:
// DrawingFileReaderWriter.java
// DrawingFileReaderWriter defines static methods for reading
// and writing DeitelDrawing files on disk.
package com.deitel.advjhtp1.drawing;

// Java core packages
import java.io.*;
import java.util.*;
import java.awt.Color;

// Java extension packages
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

// third-party packages
import org.w3c.dom.*;
import org.xml.sax.*;

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

public class DrawingFileReaderWriter {
   
   // write drawing to file with given fileName
   public static void writeFile( DrawingModel drawingModel, 
      String fileName ) 
   {
      // open file for writing and save drawing data
      try {
         
         DocumentBuilderFactory builderFactory =
            DocumentBuilderFactory.newInstance();
         
         DocumentBuilder builder = 
            builderFactory.newDocumentBuilder();
         
         Document document = builder.newDocument();
         
         // create shapes element to contain all MyShapes
         Element shapesElement = 
            document.createElement( "shapes" );
         document.appendChild( shapesElement );
         
         Iterator iterator = drawingModel.getShapes().iterator();
         
         // populate shapes element with shape element for each
         // MyShape in DrawingModel
         while ( iterator.hasNext() ) {
            MyShape shape = ( MyShape ) iterator.next();
            
            shapesElement.appendChild( shape.getXML( document ) );            
         }
         
         // use Transformer to write shapes XML document to a file
         TransformerFactory transformerFactory = 
            TransformerFactory.newInstance();
         
         Transformer transformer = 
            transformerFactory.newTransformer();
         
         // specify the shapes.dtd Document Type Definition
         transformer.setOutputProperty(
            OutputKeys.DOCTYPE_SYSTEM, "shapes.dtd" );
         
         transformer.transform( new DOMSource( document ), 
            new StreamResult( new FileOutputStream( 
               fileName ) ) );        
         
      } // end try
      
      // handle exception building XML Document
      catch ( ParserConfigurationException parserException ) {
         parserException.printStackTrace();
      }
      
      // handle exception transforming XML Document
      catch ( TransformerException transformerException ) {
         transformerException.printStackTrace();
      }
      
      // handle exception opening FileOutputStream
      catch( FileNotFoundException fileException ) { 
         fileException.printStackTrace(); 
      } 
      
   } // end method writeFile
   
   // open existing drawing from file
   public static Collection readFile( String fileName ) 
   {         
      // load shapes from file
      try {
         
         // Collection of MyShapes read from XML Document
         Collection shapes = new ArrayList();
         
         DocumentBuilderFactory builderFactory =
            DocumentBuilderFactory.newInstance();
         
         builderFactory.setValidating( true );
         
         DocumentBuilder builder = 
            builderFactory.newDocumentBuilder();
         
         Document document = builder.parse( 
            new File( fileName ) );
         
         // get all shape elements in XML Document
         NodeList list = document.getElementsByTagName( "shape" );
         
         // get MyShape from each shape element in XML Document
         for ( int i = 0; i < list.getLength(); i++ ) {            
            Element element = ( Element ) list.item( i );            
            MyShape shape = getShapeFromElement( element );            
            shapes.add( shape );            
         }
         
         return shapes;
         
      } // end try
      
      // handle exception parsing XML Document
      catch ( ParserConfigurationException parserException ) {
         parserException.printStackTrace();
      }     
      
      // handle exception parsing Document
      catch ( SAXException saxException ) {
         saxException.printStackTrace();
      }
      
      // handle exception reading Document from file
      catch ( IOException ioException ) {
         ioException.printStackTrace();
      }
         
      return null;
   
   } // end method readFile
   
   // create MyShape using properties specified in given Element
   private static MyShape getShapeFromElement( Element element )
   {
      MyShape shape = null;
      
      // get MyShape type (e.g., MyLine, MyRectangle, etc.)
      String type = element.getAttribute( "type" );
      
      // create appropriate MyShape subclass instance
      if ( type.equals( "MyLine" ) ) {
         shape = new MyLine();
      }
      
      else if ( type.equals( "MyRectangle" ) ) {
         shape = new MyRectangle();
      }
            
      else if ( type.equals( "MyOval" ) ) {
         shape = new MyOval();
      }
            
      else if ( type.equals( "MyText" ) ) {
         shape = new MyText();
         
         // create MyText reference for setting MyText-specific
         // properties, including fontSize, text, etc.
         MyText textShape  = ( MyText ) shape;
         
         // set text property
         String text = 
            getStringValueFromChildElement( element, "text" );
         
         textShape.setText( text );
         
         // set fontSize property
         int fontSize =
            getIntValueFromChildElement( element, "fontSize" );
         
         textShape.setFontSize( fontSize );
         
         // set fontName property
         String fontName =
            getStringValueFromChildElement( element, "fontName" );
         
         textShape.setFontName( fontName );
         
         // set underlined property
         boolean underlined = getBooleanValueFromChildElement( 
            element, "underlined" );
         
         textShape.setUnderlineSelected( underlined );
         
         // set bold property
         boolean bold =
            getBooleanValueFromChildElement( element, "bold" );
         
         textShape.setBoldSelected( bold );
         
         // set italic property
         boolean italic =
            getBooleanValueFromChildElement( element, "italic" );
         
         textShape.setItalicSelected( italic );  
      }
            
      else if ( type.equals( "MyImage" ) ) {
         shape = new MyImage();
         
         // create MyImage reference for setting MyImage-specific
         // fileName property
         MyImage imageShape = ( MyImage ) shape;
         
         String fileName = getStringValueFromChildElement(
            element, "fileName" );
         
         imageShape.setFileName( fileName );
      }
      
      // set properties common to all MyShapes, including x1, y1,
      // x2, y2, startColor, endColor, etc.
      
      // set x1 and y1 properties
      int x1 = getIntValueFromChildElement( element, "x1" );
      int y1 = getIntValueFromChildElement( element, "y1" );
      
      shape.setPoint1( x1, y1 );
      
      // set x2 and y2 properties
      int x2 = getIntValueFromChildElement( element, "x2" );
      int y2 = getIntValueFromChildElement( element, "y2" );
      
      shape.setPoint2( x2, y2 );
      
      // set startX and startY properties
      int startX = 
         getIntValueFromChildElement( element, "startX" );
      int startY = 
         getIntValueFromChildElement( element, "startY" );
      
      shape.setStartPoint( startX, startY );
      
      // set endX and endY properties
      int endX = getIntValueFromChildElement( element, "endX" );
      int endY = getIntValueFromChildElement( element, "endY" );
      
      shape.setEndPoint( endX, endY );
      
      // set startColor and endColor properties
      Color startColor = 
         getColorValueFromChildElement( element, "startColor" );
      
      shape.setStartColor( startColor );

      Color endColor = 
         getColorValueFromChildElement( element, "endColor" );   
      
      shape.setEndColor( endColor );
      
      // set useGradient property
      boolean useGradient = getBooleanValueFromChildElement( 
         element, "useGradient" );
      
      shape.setUseGradient( useGradient );
      
      // set strokeSize property
      float strokeSize = getFloatValueFromChildElement(
         element, "strokeSize" );
      
      shape.setStrokeSize( strokeSize );
      
      // set filled property
      boolean fill = 
         getBooleanValueFromChildElement( element, "fill" );
      
      shape.setFilled( fill );
      
      return shape;
      
   } // end method getShapeFromElement
   
   // get int value from child element with given name
   private static int getIntValueFromChildElement( Element parent,
      String childElementName )
   {
      // get NodeList for Elements of given childElementName
      NodeList childNodes = parent.getElementsByTagName(
         childElementName );
      
      // get Text Node from zeroth child Element
      Node childTextNode = childNodes.item( 0 ).getFirstChild();
      
      // parse int value from Text Node
      return Integer.parseInt( childTextNode.getNodeValue() ); 
      
   } // end method getIntValueFromChildElement
   
   // get float value from child element with given name
   private static float getFloatValueFromChildElement(
      Element parent, String childElementName )
   {
      // get NodeList for Elements of given childElementName
      NodeList childNodes = parent.getElementsByTagName(
         childElementName );
      
      // get Text Node from zeroth child Element
      Node childTextNode = childNodes.item( 0 ).getFirstChild();
      
      // parse float value from Text Node
      return Float.parseFloat( childTextNode.getNodeValue() );  
      
   } // end method getFloatValueFromChildElement
   
   // get boolean value from child element with given name
   private static boolean getBooleanValueFromChildElement(
      Element parent, String childElementName )
   {
      // get NodeList for Elements of given childElementName
      NodeList childNodes = parent.getElementsByTagName(
         childElementName );
      
      Node childTextNode = childNodes.item( 0 ).getFirstChild();
      
      // parse boolean value from Text Node
      return Boolean.valueOf( 
         childTextNode.getNodeValue() ).booleanValue();   
      
   } // end method getBooleanValueFromChildElement
   
   // get String value from child element with given name
   private static String getStringValueFromChildElement(
      Element parent, String childElementName )
   {
      // get NodeList for Elements of given childElementName
      NodeList childNodes = parent.getElementsByTagName(
         childElementName );
      
      // get Text Node from zeroth child Element
      Node childTextNode = childNodes.item( 0 ).getFirstChild();
      
      // return String value of Text Node
      return childTextNode.getNodeValue();  
      
   }  // end method getStringValueFromChildElement 
   
   // get Color value from child element with given name
   private static Color getColorValueFromChildElement(
      Element parent, String childElementName )
   {
      // get NodeList for Elements of given childElementName
      NodeList childNodes = parent.getElementsByTagName(
         childElementName );
      
      // get zeroth child Element
      Element childElement = ( Element ) childNodes.item( 0 );
      
      // get red, green and blue attribute values
      int red = Integer.parseInt( 
         childElement.getAttribute( "red" ) );
      
      int green = Integer.parseInt( 
         childElement.getAttribute( "green" ) );
      
      int blue = Integer.parseInt( 
         childElement.getAttribute( "blue" ) );      
      
      // return Color for given red, green and blue values
      return new Color( red, green, blue );           
      
   } // end method getColorValueFromChildElement
}

/***************************************************************
 * (C) Copyright 2002 by Deitel & Associates, Inc. and         *
 * Prentice Hall. All Rights Reserved.                         *
 *                                                             *
 * DISCLAIMER: The authors and publisher of this book have     *
 * used their best efforts in preparing the book. These        *
 * efforts include the development, research, and testing of   *
 * the theories and programs to determine their effectiveness. *
 * The authors and publisher make no warranty of any kind,     *
 * expressed or implied, with regard to these programs or to   *
 * the documentation contained in these books. The authors     *
 * and publisher shall not be liable in any event for          *
 * incidental or consequential damages in connection with, or  *
 * arising out of, the furnishing, performance, or use of      *
 * these programs.                                             *
 ***************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人一级视频| 国产精品久久久久久久久动漫| 国产精品久久免费看| 欧美肥妇free| 床上的激情91.| 亚洲高清免费视频| 久久综合狠狠综合久久综合88| 成人国产精品视频| 亚洲综合色婷婷| 精品国产免费一区二区三区四区| 国产福利一区在线观看| 亚洲国产精品天堂| 日本一区二区三区电影| 7777精品伊人久久久大香线蕉 | 国产精品一卡二| 日本不卡在线视频| 亚洲制服丝袜av| 成人欧美一区二区三区黑人麻豆| 91麻豆精品国产91久久久| 在线免费观看日韩欧美| 成人美女视频在线观看18| 国模套图日韩精品一区二区 | 亚洲精品免费在线观看| 久久精品欧美一区二区三区麻豆| 欧美高清视频在线高清观看mv色露露十八| 成人18视频在线播放| 丁香婷婷综合激情五月色| 国产一区二区剧情av在线| 国产美女精品人人做人人爽| 极品少妇一区二区三区精品视频 | 日韩一区二区三区电影在线观看 | 欧美日韩在线免费视频| 在线观看不卡一区| 色噜噜狠狠色综合欧洲selulu| 波多野结衣在线aⅴ中文字幕不卡| yourporn久久国产精品| 欧美日韩中文字幕一区| 在线播放欧美女士性生活| 精品三级在线看| 国产人久久人人人人爽| 国产精品久久久久一区二区三区 | 国产欧美一区二区精品仙草咪| 久久久久97国产精华液好用吗| 久久亚洲免费视频| 亚洲一二三区在线观看| 亚洲va中文字幕| 精品在线播放午夜| 欧美一区二区精品久久911| 久久色在线观看| 亚洲国产wwwccc36天堂| 精品一区二区三区在线播放视频| 国模套图日韩精品一区二区| 欧美性一级生活| 在线亚洲高清视频| 欧美精品一区二区三区在线| 亚洲国产成人一区二区三区| 日韩黄色在线观看| 在线播放中文字幕一区| 一区二区三区在线高清| 国产一区二区久久| 国产视频一区二区在线| 首页欧美精品中文字幕| 波多野结衣在线aⅴ中文字幕不卡| 日韩美女在线视频| 精品一区二区成人精品| 精品国产麻豆免费人成网站| 亚洲成a人片在线不卡一二三区| 一本到高清视频免费精品| 国产精品白丝在线| 成人亚洲精品久久久久软件| 国产偷国产偷精品高清尤物 | 国产91精品一区二区麻豆亚洲| 精品国产伦一区二区三区免费 | 亚洲欧洲日产国码二区| 成人h动漫精品一区二区| 国产精品免费视频网站| 91性感美女视频| 天堂久久一区二区三区| 久久色.com| 99久久精品99国产精品| 亚洲午夜激情网页| 日韩视频免费观看高清完整版| 国产麻豆成人传媒免费观看| 国产欧美一区二区精品性色| 在线视频国内自拍亚洲视频| 美国三级日本三级久久99| 欧美极品少妇xxxxⅹ高跟鞋| 在线观看国产91| 国产99久久久精品| 日本亚洲电影天堂| 亚洲欧美国产高清| 精品国产3级a| 91精品国产综合久久小美女| 粉嫩高潮美女一区二区三区| 污片在线观看一区二区| 亚洲欧美在线aaa| 国产精品无圣光一区二区| 日韩一区二区三区电影| 一本一道久久a久久精品 | 亚洲欧洲精品一区二区三区不卡| 3atv在线一区二区三区| 在线欧美日韩国产| 色综合天天视频在线观看| 不卡的av电影| av高清久久久| av在线综合网| 99久久夜色精品国产网站| 成人自拍视频在线| 色婷婷久久久久swag精品| 成人国产精品免费观看动漫| 99久久精品国产精品久久| 99在线精品观看| 91国偷自产一区二区三区观看 | 国产精品毛片大码女人| 一区二区三区日韩在线观看| 一区二区三区在线视频免费| 亚洲少妇最新在线视频| 亚洲成a人片综合在线| 免费观看成人鲁鲁鲁鲁鲁视频| 久久aⅴ国产欧美74aaa| 成人免费高清视频| 欧美吻胸吃奶大尺度电影| 6080yy午夜一二三区久久| 久久久蜜桃精品| 成人免费高清在线观看| 欧美一区二区三区视频免费播放 | 亚洲欧美一区二区三区孕妇| 一区二区三区**美女毛片| 亚洲高清一区二区三区| 久久国产精品色| 91麻豆免费观看| 日韩欧美美女一区二区三区| 久久精品一区二区| 丝袜美腿亚洲一区二区图片| 国产精品影音先锋| 欧美人体做爰大胆视频| 日本一区二区动态图| 国产精品资源在线| 精品捆绑美女sm三区| 天堂成人免费av电影一区| 91久久久免费一区二区| ●精品国产综合乱码久久久久| 久久99精品国产91久久来源| 欧美这里有精品| 日韩久久一区二区| 99国产精品久| 一区二区免费视频| 欧美天堂一区二区三区| 午夜久久久影院| 久久精品夜色噜噜亚洲a∨| 亚洲成人午夜影院| 北岛玲一区二区三区四区| 亚洲欧洲色图综合| 国产综合色视频| 色哟哟一区二区三区| 久久婷婷久久一区二区三区| 日本免费在线视频不卡一不卡二| 日韩一级黄色片| www.99精品| 国产真实乱子伦精品视频| 亚洲色欲色欲www| 久久亚洲欧美国产精品乐播| 日韩一区在线看| 国产一区 二区 三区一级| 欧美三级韩国三级日本三斤| 国产精品丝袜久久久久久app| 国产精品不卡视频| 精品综合免费视频观看| 9191国产精品| 日韩中文字幕不卡| 欧美优质美女网站| **性色生活片久久毛片| 国产精品伊人色| 精品久久久久久久久久久久包黑料 | 色综合久久88色综合天天免费| 欧美亚日韩国产aⅴ精品中极品| 久久一留热品黄| 日韩avvvv在线播放| 99视频有精品| 国产人久久人人人人爽| 一区二区成人在线| 99国产精品国产精品毛片| 欧美一级精品大片| 久久精品国产精品亚洲综合| 亚洲人精品一区| 亚洲午夜久久久| 蜜臀av在线播放一区二区三区| 日韩国产精品久久久久久亚洲| 亚洲成人av一区二区| 夜夜爽夜夜爽精品视频| k8久久久一区二区三区 | 欧美精品一区男女天堂| 91福利在线观看| 91免费视频观看| 欧美一区二区三区不卡| 色综合网色综合| 国产在线视频一区二区三区| 中文字幕在线视频一区| 北岛玲一区二区三区四区| 国产片一区二区三区|