鴿子的小窩

          java精靈

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            0 Posts :: 4 Stories :: 0 Comments :: 0 Trackbacks
          JAVA的繪圖功能非常豐富,繪圖包括字體、顏色、圖形,以下我們將分技術專題來講。
          一、關于JAVA的繪圖機制。
          JAVA中的任何一個圖形組件,小到文本框、標簽,大到一個FRAME,一個DIALOG,都有一個專門負責顯示其界面的函數,這個函數名稱是固定的:paint,它的原型為:
          public void paint(Graphics g)
          {
          ……
          }
          每當組件大小、位置、組件內容發生變化時,該函數即負責生成新的圖形界面顯示。由于該函數可以被子類繼承,因此,繼承的子類有能力修改該函數。如果子類中沒有出現該函數,則表示其行為完全繼承自父類。則不管是組件中是否添加了新的內容,是否發生了大小的改變,是否發生了位移,父類都要有一個專門的線程,來負責描繪變化以后的組件界面。 paint函數由父類自動維護,并且如果子類一旦重載該函數,必須自己去維護所有的界面顯示。
          二、設置畫筆顏色
          1、顏色常識
          任何顏色都是三原色組成(RGB),JAVA中支持224位彩色,即紅綠藍色分量可取值介于0..255之間。下面首先學習一個JAVA中的類Color
          Color中的常量:
          public final static Color black=new Color(0,0,0);
          public final static Color blue=new Color(0,0,255);
          …..
          Color的構造函數:
          public Color(int r,int g,int b);

          使用舉例:如果想構造一個灰色對象,則用下面的句子:
          Color gray=new Color(205,205,205);

          2、設置畫筆顏色語法
          g.setColor(color); //color是一個Color對象
          每修改一次顏色它影響的就是下面所有的繪圖語句,一直影響到再次碰到setColor函數才以新的顏色代替。
          3、使用JColorChooser組件選擇顏色
          JAVA中有一個已經定義好的選色器,通過簡單的語法我們就可以將該窗口調出來,從其中選擇自己喜歡的顏色。下面的這個例子就是通過顏色選取器選取顏色,并將選擇到的顏色做為窗體的背景色。
          (1)JColorChooser簡介
          JColorChooser組件的showDialog()方法讓用戶從彈出的窗口中選擇一個顏色,并傳給Color對象。其調用語法如下:

          color=JColorChooser.showDialog(this,”選色”,color);
          第一個參數指定調用選色器的父窗體,第二個參數指定選色器窗口標題,最后一個為接收顏色的顏色對象。
          4、如何將一個圖形(以文件存在,如JPG或者GIF)畫到窗體的畫布中
          其實放置圖形到畫板中實際就是調用了畫板的drawImage函數。其大致思路如下:
          首先獲取一個ImageIcon對象,這個對象將會從指定的文件中讀取相關圖象信息,它支持GIF和JPG、BMP等基本圖象格式。語法如下:
          ImageIcon icon=new ImageIcon(GraExp5.class.getResource("1.gif"));
          獲取到圖象的圖標以后,就可以從圖標中獲取到繪制到畫板上的實際需要的圖象:
          Image img=icon.getImage();
          有了這個圖象對象,我們就可以用畫板的drawImage函數畫圖了。
          g.drawImage(img,0,0,null);
          中間兩個參數是圖象繪制時在畫板的起始點坐標。
          例如:
          import java.awt.*;
          import java.awt.event.*;
          import javax.swing.*;
           
          public class GraExp5 extends JFrame
          {
          ImageIcon icon;
          Image img;
           
          public GraExp5()
          {
          icon=new ImageIcon(GraExp5.class.getResource("1.gif"));
          img=icon.getImage();
          setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
          setSize(new Dimension(400,300));
          show();
          }
          public void paint(Graphics g)
          {
          g.drawImage(img,0,0,null);
          }
          public static void main(String[] args)
          {
          GraExp5 ge=new GraExp5();
          }
          }
          
          程序分析:
          需要注意的是,圖象文件所在的位置應該和該類放在同一個目錄中,這樣不至于出錯。
          6、系統擴展,綜合應用,如何為一個窗體設置背景圖片。
          要為一個窗體添加背景圖片,必須知道繪制JComponent組件的過程。Swing輕量組件的繪制是組件和組件UI代表合作的結果。
          JComponent.paint先繪制組件,然后繪制組件的邊框,再繪制組件的子組件。調用的順序確保組件、邊框和子組件都是可視的。如果組件有一個UI代表,則JComponent.paintComponent調用該代表的Update方法,該方法為不透明組件擦除背景,然后繪制組件。
          CInstead是一個不透明的組件,如果重載paint方法,其背景圖是無法被擦除的,因此,即使更新了組件的所有包含組件,在界面上是看不到的。所以必須重載paintComponent方法,在繪制子組件前先擦除背景。
          對雙緩存組件,paint方法負責把組件繪制到屏外緩存中,然后把屏外緩存拷貝到組件的屏上代表中,正因為如此,我們不建議為Swing組件重載paint,如果需要重新定義如何繪制組件,那么就重載paintComponent()。

          7、用可獲取的字體、樣式、字號修飾文字
          (1)函數說明:
          字形類Font用于規范組件所使用的字形大小、樣式和字體等。其構造函數:
          public Font(String name,int style,int size);
          name表示本地可獲取字體名稱
          style表示字體樣式,包含Font.PLAIN,Font.BOLD,Font.ITALIC三種,分別對應平體、加粗和斜體。

          一個有用的方法用來獲取本地可用字體
          GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
          String[] fa=ge.getAvailableFontFamilyNames();
          通過從繪圖環境中獲取到本地可用的字體名數組。
          posted on 2011-01-11 13:25 twins331 閱讀(114) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 若羌县| 来安县| 通许县| 武功县| 呈贡县| 睢宁县| 罗平县| 温泉县| 建宁县| 衡阳市| 米易县| 吴忠市| 海城市| 漠河县| 利津县| 永修县| 宝山区| 门头沟区| 东乌珠穆沁旗| 柘城县| 绥滨县| 孟村| 水城县| 龙泉市| 乐亭县| 南漳县| 尤溪县| 攀枝花市| 安多县| 安平县| 盐城市| 融水| 神农架林区| 棋牌| 曲水县| 苏尼特左旗| 石屏县| 屏边| 杭锦后旗| 蒲城县| 普兰县|