六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

JAVA圖文說明教程 第5講 AWT圖形用戶界面設計(一)

[摘要]5.1 用AWT生成圖形化用戶界面    抽象窗口工具包AWT (Abstract Window Toolkit) 是 API為Java 程序提供的建立圖形用戶界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支...
5.1 用AWT生成圖形化用戶界面

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

  5.1.1 java.awt包
  
  java.awt包中提供了GUI設計所使用的類和接口,可從圖5.1中看到主要類之間的關系。

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

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

  5.1.2 組件和容器

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

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

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

  布局管理器(LayoutManager):每個容器都有一個布局管理器,當容器需要對某個組件進行定位或判斷其大小尺寸時,就會調用其對應的布局管理器。

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

  在程序中安排組件的位置和大小時,應該注意以下兩點:
  1.容器中的布局管理器負責各個組件的大小和位置,因此用戶無法在這種情況下設置組件的這些屬性。如果試圖使用Java 語言提供的setLocation(),setSize(),setBounds() 等方法,則都會被布局管理器覆蓋。


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

  5.1.3 常用容器

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

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

  1.Frame

  

  以下是容器的例子:

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

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

  另外,AWT在實際的運行過程中是調用所在平臺的圖形系統,因此同樣一段AWT程序在不同的操作系統平臺下運行所看到的圖形系統是不一樣的。例如在windows下運行,則顯示的窗口是windows風格的窗口;而在UNIX下運行時,則顯示的是UNIX風格的窗口。

  2. Panel

  

  例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的背景顏色設置為紅色
        fr.setLayout(null);
               //取消布局管理器
        pan.setSize(100,100);
        pan.setBackground(Color.yellow);
               //設置面板pan的背景顏色為黃色
        fr.add(pan); //用add方法把面板pan添加到框架fr中
        fr.setVisible(true);
        }
   }

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

  另外,AWT在實際的運行過程中是調用所在平臺的圖形系統,因此同樣一段AWT程序在不同的操作系統平臺下運行所看到的圖形系統是不一樣的。例如在windows下運行,則顯示的窗口是windows風格的窗口;而在UNIX下運行時,則顯示的是UNIX風格的窗口。



主站蜘蛛池模板: 亚洲日本成人 | 日本高清免费在线 | 亚洲综合色网站 | 欧美午夜色大片在线观看免费 | 日本七大伦理经典在线观看 | 色美女影院 | 青青草原免费在线观看 | 天天插天天射天天操 | 日韩在线视频免费观看 | 五月天婷婷亚洲 | 日韩视频不卡 | 又粗又硬又大又爽免费视频播放 | 日韩福利影院 | 亚洲第二十页 | 午夜视频导航 | 天天操天天射天天 | 四虎在线精品免费高清在线 | 手机看片自拍自拍自拍自视频 | 亚洲你懂的| 天天射天天草 | 午夜在线视频 | 日本成人在线看 | 人人揉揉香蕉大免费不卡 | 深夜影院深a久久 | 日本午夜视频 | 色迷迷网免费站视频在线观看 | 人人揉揉香蕉 | 亚洲图片综合区另类图片 | 中文字幕第35页 | 青草青草久热精品视频在线观看 | 天天爱天天操天天射 | 午夜美女影院 | 亚洲精品欧美综合 | 在线观看视频h | 亚洲色欲色欲www在线观看 | 天天爱综合 | 青草视频网站在线观看 | 欧美亚洲国产一区二区 | 欧美综合图区亚洲综合图区 | 亚州第一视频 | 亚洲大尺度视频 |