<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-71  評論-4  文章-0  trackbacks-0
    我們經常要在網頁看到一些動態(tài)更新的圖片,最常見的莫過于股票的K線圖,本文試圖通過一個簡單的實例,向大家展示如何通過JSP 調用JavaBean在網頁上動態(tài)生成柱狀圖。 
       背景:本人最近在為某統(tǒng)計局開發(fā)項目時,涉及到在網頁上動態(tài)生成圖片的問題,費了一天的時間,終于搞定,為幫助大家在以后遇到同樣的問題時不走彎路,現將設計思想及源代碼公布出來,與大家共勉。以下代碼在Windows2000成功測試通過,Web應用服務器采用Allaire公司的Jrun3.0。
       第一步:創(chuàng)建一個Java Bean用來生成jpg文件 
       源程序如下: 

    //生成圖片的 Java Bean 
    //作者:崔冠宇 
    //日期:2001-08-24 
    import java.io.*; 
    import java.util.*; 
    import com.sun.image.codec.jpeg.*; 
    import java.awt.image.*; 
    import java.awt.*; 

    public class ChartGraphics { 
      BufferedImage image; 
      public void createImage(String fileLocation) { 
       try { 
        FileOutputStream fos = new FileOutputStream(fileLocation); 
        BufferedOutputStream bos = new BufferedOutputStream(fos); 
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); 
        encoder.encode(image); 
        bos.close(); 
       } catch(Exception e) { 
        System.out.println(e); 
       } 
      } 

      public void graphicsGeneration(int h1,int h2,int h3,int h4,int h5) { 

       final int X=10; 
       int imageWidth = 300;//圖片的寬度 
       int imageHeight = 300;//圖片的高度 
       int columnWidth=30;//柱的寬度 
       int columnHeight=200;//柱的最大高度 

       ChartGraphics chartGraphics = new ChartGraphics(); 
       chartGraphics.image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB); 
       Graphics graphics = chartGraphics.image.getGraphics(); 
       graphics.setColor(Color.white); 
       graphics.fillRect(0,0,imageWidth,imageHeight); 
       graphics.setColor(Color.red); 
       graphics.drawRect(X+1*columnWidth, columnHeight-h1, columnWidth, h1); 
       graphics.drawRect(X+2*columnWidth, columnHeight-h2, columnWidth, h2); 
       graphics.drawRect(X+3*columnWidth, columnHeight-h3, columnWidth, h3); 
       graphics.drawRect(X+4*columnWidth, columnHeight-h4, columnWidth, h4); 
       graphics.drawRect(X+5*columnWidth, columnHeight-h5, columnWidth, h5); 
       chartGraphics.createImage("D:\\temp\\chart.jpg"); 
      } 

     

       解釋:createImage(String fileLocation)方法用于創(chuàng)建JPG圖片,參數fileLocation為文件路徑 

       graphicsGeneration(int h1,int h2,int h3,int h4,int h5)方法用于繪出圖片的內容,參數h1……h(huán)5為每一個長方形的高度 

       第二步:創(chuàng)建另一個Java Bean從文本文件中讀取數據(每一個長方形的高度),在實際應用中數據存儲在Oracle數據庫中 

       源程序如下: 

    //讀取Text文件中數據的 Java Bean 
    //作者:崔冠宇 
    //日期:2001-08-24 
    import java.io.*; 
    public class GetData { 
      int heightArray[] = new int[5]; 
      public int[] getHightArray() { 
       try { 
        RandomAccessFile randomAccessFile = new RandomAccessFile   ("d:\\temp\\ColumnHeightArray.txt","r"); 
        for (int i=0;i<5;i++) 
        { 
         heightArray[i] = Integer.parseInt(randomAccessFile.readLine()); 
        } 
       } 
       catch(Exception e) { 
        System.out.println(e); 
       } 
       return heightArray; 
      } 
    }  

       解釋: getHightArray()用于從文本中讀取數據,將文本中的String類型轉換為int類型,并以數組類型返回。 

       第三步:創(chuàng)建JSP文件 

       源程序如下: 
    <jsp:useBean id="cg" class="example.img.ChartGraphics"/> 
    <jsp:useBean id="gd" class="example.img.GetData"/> 
    <%! 
    int height[]=new int[5]; 
    %> 
    <% 
    height=gd.getHightArray(); 
    for(int i=0;i<height.length;i++)
       out.println(height[i]+"<br>");
    cg.graphicsGeneration(height[0],height[1],height[2],height[3],height[4]); 
    %> 
    <html> 
    <body> 
    <img src="d:\temp\chart.jpg"></img> 
    </body> 
    </html> 

        解釋:JSP首先調用Bean (GetData..class)讀取文件中的數據,再調用Bean(ChartGraphics.class)生成圖片,最后顯示圖片。 
       結束語:由于文本(ColumnHeightArray.txt)中的數據可以隨時變化,因此生成的圖片中的5個長方形的高度是隨之變化的,從而實現了圖片的動態(tài)生成.該設計思想還可以用于制作網站的投票系統(tǒng)。
    posted on 2006-01-12 13:06 zjw_albert 閱讀(104) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲成年人电影网站| 亚洲AV无码成人网站久久精品大 | 成人国产mv免费视频| 国产精品麻豆免费版| 中文字幕亚洲无线码a| 久久精品国产96精品亚洲 | 日韩精品亚洲aⅴ在线影院| 亚洲国产精品一区二区久久hs| 亚洲毛片在线观看| www.亚洲日本| 粉色视频免费入口| 99在线视频免费观看| 四虎免费影院ww4164h| 国产精品嫩草影院免费| 亚洲人成网亚洲欧洲无码久久 | 亚洲AV无码1区2区久久| 色偷偷亚洲女人天堂观看欧| 人妻巨大乳hd免费看| 国产成人一区二区三区视频免费| 很黄很黄的网站免费的| 亚洲av午夜成人片精品电影| 亚洲国产精品无码AAA片| 亚洲男人的天堂久久精品| xxxxx做受大片视频免费| 7m凹凸精品分类大全免费| 国产高清在线免费| 亚洲AV无码国产精品色午友在线| 亚洲色大成网站www久久九| 成人毛片100免费观看| 四虎永久在线观看免费网站网址| 伊在人亚洲香蕉精品区麻豆| 亚洲色四在线视频观看| 在线播放亚洲精品| 在线成人爽a毛片免费软件| 亚洲AV无码不卡在线观看下载 | 亚洲国产精品成人精品无码区| 亚洲熟妇无码AV| 国产亚洲免费的视频看| 成年人免费观看视频网站| 国产精品亚洲一区二区三区在线| 亚洲中文字幕无码中文|