Rex Mao

          分享java技術與生活

          #

          java畫圖程序技術小結(二) 重繪與雙緩沖

          雙緩沖,我記得有兩種方法,一種是兩個圖象,一個前臺Graphics,一個后臺Graphics,畫圖時在后臺畫,畫好了,再用前臺的Graphics畫后臺Graphics的圖片。另一種是有兩個或多個圖象,不分前后臺,顯示一個圖象時,另外的在畫,圖象循環使用(c語言時用過)。
                   給出第一種的java實現
                   a、  定義后臺圖象BufferedImage offScreenImg=offScreenImg = new BufferedImage(this.maxX, this.maxY,
                                               BufferedImage.TYPE_INT_RGB);

                   b、  得到后臺的Graphics實例

              Graphics2D offScreenG;

                  offScreenG = offScreenImg.createGraphics();

                   c、  覆蓋paintComponent方法

               public void paintComponent(Graphics g) {

                    super.paintComponent(g);

                  g.drawImage(offScreenImg, 0, 0, this.maxX, this.maxY, this);

                    }

                  繪制時用后臺Graphics,繪制好后,調用repaint(),將offScreenImg繪到面板上。


          posted @ 2007-04-23 21:47 Rex Mao 閱讀(4420) | 評論 (1)編輯 收藏

          java畫圖程序技術小結(一) 程序結構問題

                   這個軟件是我大二時的圖形學課程設計,是個矢量圖形的繪制軟件。發來給初學者參考。
                   主要功能:
                   實現點、線段、折線、圓、橢圓、矩形、圓弧、多邊形、填充圖形、字符串等的定義和交互繪制。
                   實現線型、線寬、顏色的選擇。
                   實現畫布的定義及保存。


                   程序結構:

          程序的主要功能均由類PaintPanel完成,該類繼承自JtextArea。(用它是為了實現畫布的大小調整的滾動條,以后介紹)

          PaintPanel中主要成員:

          ArrayList shape 保存當前畫布上的圖形對象

          ArrayList undo  保存用于撤消操作的圖形對象  

          Color bgCol    背景顏色

          BufferedImage offScreenImg   后臺圖象

          Graphics2D offScreenG       后臺Graphics對象

          Clipboard cb;   剪切板(由系統剪切板實例化)

             程序中定義接口:CusShape,主要有一些操作圖形的基本方法,比如,繪制,位置控制,顏色控制(具體可看代碼)
             其他圖形均繼承java.awt中的對應的類(主要是使用其中的交叉判斷函數intersects,用于圖形的鼠標選取),并實現Serializable,CusShape。
             圖形在程序中都以接口CusShape形式出現,以畫的圖形存儲在ArrayList中。

             我是通過這個軟件的設計才明白多態的,以前都是理論上的,經過實踐才知道面向對象的好處。這個軟件編寫的時候我對java還不是很了解,所以有的結構不是很合理,寫出來就是給初學者做個參考,看到有很多同學都在找畫圖板的設計,我會給出程序和簡單的設計文檔。

          posted @ 2007-04-23 10:11 Rex Mao 閱讀(3929) | 評論 (4)編輯 收藏

          轉移了一些圖片

                   從以前的博客轉了一些圖片過來,以前的一些技術小結也要轉過來。

          posted @ 2007-04-23 09:42 Rex Mao 閱讀(238) | 評論 (0)編輯 收藏

          java名稱的由來-開篇

           剛開了這個博客,既然是java技術,我想以這個開篇還是合適的。
                   
                   java名稱的來歷                                                                                                                          
                   1995年初,Sun公司推出了新一代面向對象的程序設計語言,并將其命名為Java。關于Java這個名字的來歷有一段趣聞:有一天,幾位Java成員組的會員正在討論給這個新的語言取什么名字,當時他們正在咖啡館喝著Java(爪哇)咖啡,有一個人靈機一動說就叫Java怎樣,這個提議得到了其他人的贊同,于是,Java這個名字就這樣傳開了。
                   關于java的咖啡圖標,我以為也可以有悠閑的意思,就是說使用java語言可以有更好的開發效率,給你更多悠閑的時間(喝咖啡)。還有一杯咖啡放在你的面前,你是不是有一種要把它端起來的沖動呢,其實就是讓你體驗java的沖動。
                   在和室友小賴談論這個話題時,他說我們要是開發一種語言就叫guoba(鍋巴),呵呵.

          posted @ 2007-04-22 11:17 Rex Mao 閱讀(1635) | 評論 (2)編輯 收藏

          僅列出標題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 沙河市| 舟曲县| 台州市| 蛟河市| 玛曲县| 西林县| 陵水| 绥化市| 沙雅县| 米易县| 章丘市| 海宁市| 邵阳县| 金寨县| 中西区| 南昌县| 安宁市| 肃南| 双辽市| 板桥市| 文化| 清苑县| 崇礼县| 神农架林区| 乐东| 全州县| 张掖市| 无极县| 遂平县| 莱阳市| 安达市| 阿合奇县| 瑞丽市| 石渠县| 县级市| 灌南县| 合川市| 山丹县| 洛南县| 正蓝旗| 双峰县|