国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JAVA教程 第五講 AWT圖形用戶界面設(shè)計(jì)

2019-11-18 11:16:54
字體:
供稿:網(wǎng)友

5.1 用AWT生成圖形化用戶界面

  抽象窗口工具包AWT (Abstract Window Toolkit) 是 API為java 程序提供的建立圖形用戶界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持圖形用戶界面編程的功能包括: 用戶界面組件;事件處理模型;圖形和圖像工具,包括外形、顏色和字體類;布局治理器,可以進(jìn)行靈活的窗口布局而與特定窗口的尺寸和屏幕分辨率無關(guān);數(shù)據(jù)傳送類,可以通過本地平臺的剪貼板來進(jìn)行剪切和粘貼。

5.1.1 java.awt包
 
  java.awt包中提供了GUI設(shè)計(jì)所使用的類和接口,可從圖5.1中看到主要類之間的關(guān)系。

  java.awt包提供了基本的java程序的GUI設(shè)計(jì)工具。主要包括下述三個(gè)概念:

  組件--Component
  容器--Container
  布局治理器--LayoutManager

5.1.2 組件和容器

  Java的圖形用戶界面的最基本組成部分是組件(Component),組件是一個(gè)可以以圖形化的方式顯示在屏幕上并能與用戶進(jìn)行交互的對象,例如一個(gè)按鈕,一個(gè)標(biāo)簽等。組件不能獨(dú)立地顯示出來,必須將組件放在一定的容器中才可以顯示出來。

  類java.awt.Component是許多組件類的父類,Component類中封裝了組件通用的方法和屬性,如圖形的組件對象、大小、顯示位置、前景色和背景色、邊界、可見性等,因此許多組件類也就繼續(xù)了Component類的成員方法和成員變量,相應(yīng)的成員方法包括:

   getComponentAt(int x, int y)
   getFont()
   getForeground()
   getName()
   getSize()
   paint(Graphics g)
   repaint()
   update()
   setVisible(boolean b)
   setSize(Dimension d)
   setName(String name)等
  
  容器(Container)也是一個(gè)類,實(shí)際上是Component的子類,因此容器本身也是一個(gè)組件,具有組件的所有性質(zhì),但是它的主要功能是容納其它組件和容器。

  布局治理器(LayoutManager):每個(gè)容器都有一個(gè)布局治理器,當(dāng)容器需要對某個(gè)組件進(jìn)行定位或判定其大小尺寸時(shí),就會調(diào)用其對應(yīng)的布局治理器。

  為了使我們生成的圖形用戶界面具有良好的平臺無關(guān)性,Java語言中,提供了布局治理器這個(gè)工具來治理組件在容器中的布局,而不使用直接設(shè)置組件位置和大小的方式。

  在程序中安排組件的位置和大小時(shí),應(yīng)該注重以下兩點(diǎn):
  1.容器中的布局治理器負(fù)責(zé)各個(gè)組件的大小和位置,因此用戶無法在這種情況下設(shè)置組件的這些屬性。假如試圖使用Java 語言提供的setLocation(),setSize(),setBounds() 等方法,則都會被布局治理器覆蓋。

  2.假如用戶確實(shí)需要親自設(shè)置組件大小或位置,則應(yīng)取消該容器的布局治理器,方法為:
   setLayout(null);

5.1.3 常用容器

  容器java.awt.Container是Component的子類,一個(gè)容器可以容納多個(gè)組件,并使它們成為一個(gè)整體。容器可以簡化圖形化界面的設(shè)計(jì),以整體結(jié)構(gòu)來布置界面。所有的容器都可以通過add()方法向容器中添加組件。

  有三種類型的容器:Window、Panel、ScrollPane,常用的有Panel, Frame, Applet。

 1.Frame

  JAVA教程 第五講 AWT圖形用戶界面設(shè)計(jì)(圖一)

  以下是容器的例子:

 例5.1
  import java.awt.*;
  public class MyFrame extends Frame{
  public static void main(String args[ ]){
        MyFrame fr = new MyFrame("Hello Out There!");
                       //構(gòu)造方法
        fr.setSize(200,200);
                //設(shè)置Frame的大小,缺省為(0,0)
        fr.setBackground(Color.red);
                //設(shè)置Frame的背景,缺省為紅色
        fr.setVisible(true);
                //設(shè)置Frame為可見,缺省為不可見
  }
     public MyFrame (String str){
        super(str); //調(diào)用父類的構(gòu)造方法
     }
  }

photoshop教程 數(shù)據(jù)結(jié)構(gòu) 五筆輸入法專題 QQ病毒專題 共享上網(wǎng)專題 Google工具和服務(wù)專題



    查看運(yùn)行結(jié)果

  一般我們要生成一個(gè)窗口,通常是用Window的子類Frame來進(jìn)行實(shí)例化,而不是直接用到Window類。Frame的外觀就像我們平常在windows系統(tǒng)下見到的窗口,有標(biāo)題、邊框、菜單、大小等等。每個(gè)Frame的對象實(shí)例化以后,都是沒有大小和不可見的,因此必須調(diào)用setSize( )來設(shè)置大小,調(diào)用setVisible(true)來設(shè)置該窗口為可見的。

  另外,AWT在實(shí)際的運(yùn)行過程中是調(diào)用所在平臺的圖形系統(tǒng),因此同樣一段AWT程序在不同的操作系統(tǒng)平臺下運(yùn)行所看到的圖形系統(tǒng)是不一樣的。例如在windows下運(yùn)行,則顯示的窗口是windows風(fēng)格的窗口;而在UNIX下運(yùn)行時(shí),則顯示的是UNIX風(fēng)格的窗口。

 2. Panel

  JAVA教程 第五講 AWT圖形用戶界面設(shè)計(jì)(圖二)

 例5.2
  import java.awt.*;
  public class FrameWithPanel extends Frame{
  public FrameWithPanel(String str){
        super(str);
      }

      public static void main(String args[]){
        FrameWithPanel fr = new FrameWithPanel("Frame with Panel");
        Panel pan=new Panel();
        fr.setSize(200,200);
        fr.setBackground(Color.red);
               //框架fr的背景顏色設(shè)置為紅色
        fr.setLayout(null);
               //取消布局治理器
        pan.setSize(100,100);
        pan.setBackground(Color.yellow);
               //設(shè)置面板pan的背景顏色為黃色
        fr.add(pan); //用add方法把面板pan添加到框架fr中
        fr.setVisible(true);
        }
   }

    查看運(yùn)行結(jié)果

  一般我們要生成一個(gè)窗口,通常是用Window的子類Frame來進(jìn)行實(shí)例化,而不是直接用到Window類。Frame的外觀就像我們平常在windows系統(tǒng)下見到的窗口,有標(biāo)題、邊框、菜單、大小等等。每個(gè)Frame的對象實(shí)例化以后,都是沒有大小和不可見的,因此必須調(diào)用setSize( )來設(shè)置大小,調(diào)用setVisible(true)來設(shè)置該窗口為可見的。

  另外,AWT在實(shí)際的運(yùn)行過程中是調(diào)用所在平臺的圖形系統(tǒng),因此同樣一段AWT程序在不同的操作系統(tǒng)平臺下運(yùn)行所看到的圖形系統(tǒng)是不一樣的。例如在windows下運(yùn)行,則顯示的窗口是windows風(fēng)格的窗口;而在UNIX下運(yùn)行時(shí),則顯示的是UNIX風(fēng)格的窗口。

5.1.4 LayoutManager 布局治理器(1)

  java為了實(shí)現(xiàn)跨平臺的特性并且獲得動態(tài)的布局效果,java將容器內(nèi)的所有組件安排給一個(gè)"布局治理器"負(fù)責(zé)治理,如:排列順序,組件的大小、位置,當(dāng)窗口移動或調(diào)整大小后組件如何變化等功能授權(quán)給對應(yīng)的容器布局治理器來治理,不同的布局治理器使用不同算法和策略,容器可以通過選擇不同的布局治理器來決定布局。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 嵊泗县| 板桥市| 德阳市| 翼城县| 合川市| 师宗县| 三穗县| 瑞丽市| 台北市| 舒城县| 察雅县| 江安县| 峨边| 乡城县| 天门市| 通山县| 金秀| 射洪县| 汕尾市| 宁化县| 茌平县| 福建省| 萨嘎县| 兴海县| 城市| 长宁区| 沂水县| 贞丰县| 瓮安县| 安乡县| 永安市| 孙吴县| 教育| 乐山市| 景德镇市| 依安县| 高青县| 孝感市| 来凤县| 临泉县| 辽宁省|