精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

Java語言程序設(shè)計(jì)(第三版)

邵麗萍,邵光亞,張后揚(yáng) 編 / 清華大學(xué)出版社

拼命菇?jīng)鯜 上傳

查看本書

 AWT(Abstract Windows Toolkit)是抽象窗口工具包的縮寫,其支持窗口界面的創(chuàng)建、簡單圖形的繪制、圖形化文本輸出和事件監(jiān)聽。Java所有與圖形有關(guān)的功能都包含在AWT包里。
11.1  基本圖形
  繪制基本圖形要使用AWT中的Graphics類
11.1.1 直線
  格式:public void drawLine(int x1,int y1,int x2,int y2)
  例:import java.awt.Graphics;
      public class Line extends java.applet.Applet{
         public void paint(Graphics g){
       g.drawLine(50,50,100,100);} }
11.1.2 矩形
  public void drawRect(int x,int y,int width,int height)
  public void fillRect(int x,int y,int width,int height)//與drawRect相比,畫出矩形框后用前景色填充。
  public void drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)//最后兩個(gè)參數(shù)代表圓角
  public void fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)//用前景色填充內(nèi)部
  public void draw3DRect(int x,int y,int width,int height,boolean raised)//raised為true時(shí)為三維矩形凸起, 為false時(shí)為三維矩形凹下
  public void fill3DRect(int x,int y,int width,int height,boolean raised)
11.1.3 橢圓
  public void drawOval(int x,int y,int width,int height) //x,y是包圍橢圓的矩形左上角位置,width,height是橢圓的寬度和高度。
  public void fillOval(int x,int y,int width,int height) //用前景色填充內(nèi)部
  如:public void paint(Graphics g)
    {g.drawOval(30,20,60,60);  //畫圓
    g.fillOval(130,20,80,50);}
11.1.4 圓弧
  public void drawArc(int x,int y,int width,int height,int starAngle,int arcAngle)
  //starAngle起始角(以角度為單位),確定了圓弧的位置,arcAngle張角確定了圓弧的大小,取正(負(fù))值為沿逆(順)時(shí)針方向畫出圓弧。當(dāng)張角大于360時(shí),畫出的就是橢圓。
  public void fillArc(int x,int y,int width,int height,int starAngle,int arcAngle)
11.1.5 多邊形
  public void drawPolygon(int xPoints[],int yPoints[],int nPoints)//xPoints[]是一整數(shù)數(shù)組,用以存放多邊形坐標(biāo)點(diǎn)X坐標(biāo)值,yPoints[]參數(shù)存放對應(yīng)Y坐標(biāo)值,nPoints則表示 共有幾個(gè)坐標(biāo)點(diǎn)。
  public void fillPolygon(int xPoints[],int yPoints[],int nPoints)/
  例:import java.awt.*;
    public class SC extends java.applet.Applet{
     int x[]={30,60,115,72,67};
     int y[]={40,30,15,52,100};
     int m=x.length;
     public void paint(Graphics g)
      {g.drawPolygon(x,y,m);} //m-1則少一邊,m+1則出錯(cuò)
  }
11.1.6 復(fù)制與清除圖形
  copyArea(int x,int y,int width,int height,int dx,int dy)//前四能參定義要被復(fù)制的屏幕的矩形區(qū)域,最后2個(gè)參數(shù)則表示新區(qū)域與原始屏幕區(qū)域的偏移距離。
  clearRect(int x,int y,int width,int height)//清除指定矩形區(qū)域
  要清除整個(gè)applet區(qū)域,可先調(diào)用Applet類的size()方法得到整個(gè)applet的寬度和高度。如:g.clearRect(0,0,size().width,size().height)
  例:import java.awt.*;
  public class SC extends java.applet.Applet{
   public void paint(Graphics g){
   g.fillRoundRect(120,20,80,60,30,40);
   g.copyArea(120,20,80,60,50,100);
   g.clearRect(120,20,80,60);}}
11.2  畫布
11.2.1 畫布的作用
  畫布(Canvas)是用來繪圖的組件,基作用和Windows的畫圖板類似。Canvas繼承自Component類,有自己的paint方法,能響應(yīng)鼠標(biāo)和鍵盤事件。
11.2.2 創(chuàng)建畫布的實(shí)例
  例P228
11.3  文字輸出
11.3.1 字符串、字符和字節(jié)輸出
(1)字符串輸出方法:public void drawSting(String str ,int x,int y)
(2)字符輸出方法:drawChars(char chars[],int offset,int len,int x,int y)
(3)字節(jié)輸出方法:drawBytes(byte bytes[],int offset,int len,int x,int y)
11.3.2 字體控制
  通過類Graphics或組件的方法getFont()和setFont()可以獲取或設(shè)置當(dāng)前使用的字體。
字體構(gòu)造方法:Font(String name,int style,int size)
name:字體名,如:“宋體”、“楷體”、“Times New Roman”、“Courier”
style:字體風(fēng)格,如:Font.BOLD(粗體)、Font.ITALIC(斜體)、Font.PLAIN(普通),由于它們被定義為整數(shù)常量,可以進(jìn)行相加運(yùn)算生成復(fù)合style,如:
  Font fn=new Font(“TimesRoman”, Font.BOLD+Font.ITALIC,28)
size:字體大小
  我們可通過getToolkit().getFontList()來得到系統(tǒng)的AWT工具集所支持的字體列表。如:
  Toolkit systk=Toolkit.getDefaultToolkit( );
  String fonts=systk.getFontList( );

  創(chuàng)建了Font對象以后,就可以利用Graphics類中提供的drawString(),drawChars()等方法來顯示字符串與字符:
  首先用setFont()方法,將創(chuàng)建的Font對象設(shè)為當(dāng)前所用字體,再用drawString(),drawChars()輸出字符。
格式:public void setFont(Font font); //設(shè)置當(dāng)前字體信息
   public void drawString(String str,int x,int y)//在指定位置輸出字符串
   public void drawChars(char data[],int offset,int len,int x,int y)//在指定位置輸出字符數(shù)組,offset表示從第幾個(gè)字符位置開始,len表示共顯示幾個(gè)字符。
   public font getFont()//獲取當(dāng)前所用的Font對象
11.4  顏色控制
  java在Color類中實(shí)現(xiàn)對顏色的控制,可改變前景色和背景色。Java將常用顏色定義為顏色常量,如表11.1 P231,用法如:Color.blue
構(gòu)造方法:
Color(float r,float g,float b)//red,green,blue三原色浮點(diǎn)值,取值在0.0~1.0間
Color(int r,int g,int b)//red,green,blue三原色整數(shù)值,取值在0~255間
Color(int rgb)//指定一個(gè)整數(shù)代表三原色混合值,取值0~7代表藍(lán)色,取值8~15代表綠色,取值16~23代表紅色,(此方法有問題,不要用)
11.4.1 為不同對象設(shè)置顏色
  setColor(Color c)//設(shè)置當(dāng)前所用前景色
  getColor()     //獲得當(dāng)前所用前景色
  Java還提供了設(shè)置整個(gè)Applet的前景和背景的方法:
  setForeground(Color c)
  setBackground(Color c)
  getForeground(Color c)
  getBackground(Color c)
例:import java.awt.*;
  public class SC extends java.applet.Applet{
   char c[]={'計(jì)','算','機(jī)','專','業(yè)'};
   Font f1=new Font("隸書",Font.ITALIC,16);
   Font f2=new Font("楷體",Font.ITALIC,16);
   Color c1=new Color(100,200,150);
   public void paint(Graphics g){
    g.setFont(f1);
    g.setColor(Color.RED);
    g.drawString("網(wǎng)絡(luò)專業(yè)",20,30);
    g.setColor(c1);
    g.setFont(f2);
    g.drawChars(c,0,3,20,50);}}
例:import java.awt.*;
  public class SC extends java.applet.Applet{
   Color c1=new Color(0,0,255);
   Color c2=new Color(255,50,100);
   Color c3=new Color(0,250,100);
   public void paint(Graphics g){
    setForeground(c1);
    setBackground(c2);
    g.drawRect(20,30,50,100);
    setForeground(c3); //將影響Applet中所有已經(jīng)用其他任何顏色所繪制的圖形及顯示的文本
    setBackground(Color.green);//同上,所以在一個(gè)程序中不要用兩遍引此方法
    g.drawRect(20,230,50,100);}}
11.5  圖像處理
11.5.1 圖像種類
11.5.2 圖像的顯示
  1.載入圖像方法
java.applet.Applet和java.awt.Tookit分別提供了getImage方法載入指定的圖像
格式1:Image getImage(URL url);
  要指明圖像文件的絕對URL。
格式2:Image getImage(URL url,String name);
  要指明圖像文件的基地址以及圖像文件名。當(dāng)Applet與圖像文件處于同一目錄下時(shí),可用getCodeBase()獲取基地址,如果圖像與包含Applet的HTML文件在同一目錄下,可用getDocumentBase()獲得基地址。

對于Application來說,必須通過類Toolkit提供的方法getImage()來載入圖像,其方法定義為:
  格式1:Image getImage(URL url);
  格式2:Image getImage(String filename)
   得到Toolkit對象有兩種方法:一種是通過類Toolkit的靜態(tài)方法getDefalutToolkit() 如:
  Image img=Toolkit.getDefaultToolkit().getImage(“ImgFile.gif”)
  另一種是調(diào)用某一組件的實(shí)例方法getToolkit() 如在一組件中使用:
  Image img=getToolkit().getImage(“ImgFile.gif”)
  2.顯示圖像
(1)boolean drawImage(Image img,int x,int y,ImageObserver observer):img是要顯示的圖像,x,y指明圖像的位置,observer接收有關(guān)圖像的信息。
(2)boolean drawImage(Image img,int x,int y,Color bgcolor,ImageObserver observer): bgcolor為背景色
(3)boolean drawImage(Image img,int x,int y,int width,int height,ImageObserver observer): width,height指明圖像的大小
(4)boolean drawImage(Image img,int x,int y,int width,int height,Corlor bgcolor, ImageObserver observer):

例:import java.applet.*;
  import java.net.*;  //應(yīng)要使用URL對象
  import java.awt.*;
  public class imag extends Applet{
   Image image;
   public void init() {
     String url = "http://www.shu.edu.cn/~xyx/img/shnet.jpg";
   try {
     image = getImage(new URL(url));
     } catch(Exception e){} }
  public void paint(Graphics g) {
    g.drawImage(image, 0, 0,this);  } }

第二種格式完整的程序如下:
  import java.applet.*;
  import java.net.*;
  import java.awt.*;
  public class imag2 extends Applet{
   Image image;
   URL imgur=null;
   public void init() {
   try { imgur=new URL("http://www.shu.edu.cn/~xyx/img/shnet.jpg"); }
    catch (MalformedURLException e) {
     System.out.println("Can?t open the URL "); }
   image=getImage(imgur);  }
 public void paint(Graphics g) {
  g.drawImage(image, 0, 0,this); } }
11.5.3 圖像的縮放顯示
  img=getImage(getCodeBase(),”W.jpg”)
  int w=img.getWidth(this); //返回圖像高度
  int h=img.getHeight(this); //返回圖像寬度
 g.drawImage(img,100,50,w/2,h/2,this);  //縮小一倍 
11.6  動畫處理
11.7  加載聲音文件
目前Java Applet可以播放聲音,Application則不行
格式1:play(URL soundDirectory,String soundfile)
格式2:play(URL soundURL):URL為存放聲音文件的URL,soundfile為文件名

使用java.applet.Applet類中所定義的getAudioClip()方法可以載入一個(gè)聲音文件,方法:格式1:getAudioClip(URL soundDirectory,String soundfile)
     格式2:getAudioClip (URL soundURL):
  例:AudioClip sound;
    sound=getAudioClip(getDocumentBase(),”bar.wav”)

當(dāng)聲音文件被載入后,則可以使用java.applet.AudioClip類中相關(guān)方法(play(),loop(),stop())對其進(jìn)行操作:
sound.play():播放載入的聲音文件
sound.loop():循環(huán)播放一個(gè)載入的聲音文件
sound.stop():停止播放的聲音文件

       
       
       
       

  1.如何將字串 String 轉(zhuǎn)換成整數(shù) int?
  A. 有兩個(gè)方法:
  1). int i = Integer.parseInt([String]); 或
  i = Integer.parseInt([String],[int radix]);
  2). int i = Integer.valueOf(my_str).intValue();
  注: 字串轉(zhuǎn)成 Double, Float, Long 的方法大同小異.
  2 如何將整數(shù) int 轉(zhuǎn)換成字串 String ?
  A. 有叁種方法:
  1.) String s = String.valueOf(i);
  2.) String s = Integer.toString(i);
  3.) String s = "" + i;
  注: Double, Float, Long 轉(zhuǎn)成字串的方法大同小異.
  
  這是一個(gè)例子,說的是JAVA中數(shù)據(jù)數(shù)型的轉(zhuǎn)換.供大家學(xué)習(xí)引
  package cn.com.lwkj.erts.register;
  import java.sql.Date;
  public class TypeChange {
   public TypeChange() {  }
  //change the string type to the int type
   public static  int stringToInt(String intstr)
    {Integer integer;
    integer = Integer.valueOf(intstr);
    return integer.intValue();  }
  //change int type to the string type
   public static String intToString(int value)
    {Integer integer = new Integer(value);
     return integer.toString(); }
  //change the string type to the float type
   public static  float stringToFloat(String floatstr)
    {Float floatee;
     floatee = Float.valueOf(floatstr);
     return floatee.floatValue(); }
  //change the float type to the string type
   public static String floatToString(float value)
    {Float floatee = new Float(value);
     return floatee.toString(); }
  //change the string type to the sqlDate type
  public static java.sql.Date stringToDate(String dateStr)
  {return  java.sql.Date.valueOf(dateStr); }
  //change the sqlDate type to the string type
  public static String dateToString(java.sql.Date datee)
   {return datee.toString();}
  public static void main(String[] args)
   {java.sql.Date day ;
   day = TypeChange.stringToDate("2003-11-3");
   String strday = TypeChange.dateToString(day);
   System.out.println(strday);}
  }
  
  JAVA中常用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
  雖然都能在JAVA API中找到,整理一下做個(gè)備份。
  string->byte:Byte static byte parseByte(String s)
  byte->string:Byte static String toString(byte b)
  char->string:Character static String toString (char c)
  string->Short:Short static Short parseShort(String s)
  Short->String:Short static String toString(Short s)
  String->Integer:Integer static int parseInt(String s)
  Integer->String:Integer static String tostring(int i)
  String->Long:Long static long parseLong(String s)
  Long->String:Long static String toString(Long i)
  String->Float:Float static float parseFloat(String s)
  Float->String:Float static String toString(float f)
  String->Double:Double static double parseDouble(String s)
  Double->String:Double static String toString(Double)
  
  
  
  

查看更多