亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:2日期:2024-03-06 10:36:48

5.1 用AWT生成圖形化用戶(hù)界面

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

5.1.1 java.awt包

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

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

組件--Component

容器--Container

布局管理器--LayoutManager

5.1.2 組件和容器

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

類(lèi)java.awt.Component是許多組件類(lèi)的父類(lèi),Component類(lèi)中封裝了組件通用的方法和屬性,如圖形的組件對(duì)象、大小、顯示位置、前景色和背景色、邊界、可見(jiàn)性等,因此許多組件類(lèi)也就繼承了Component類(lèi)的成員方法和成員變量,相應(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è)類(lèi),實(shí)際上是Component的子類(lèi),因此容器本身也是一個(gè)組件,具有組件的所有性質(zhì),但是它的主要功能是容納其它組件和容器。

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

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

在程序中安排組件的位置和大小時(shí),應(yīng)該注意以下兩點(diǎn):

1.容器中的布局管理器負(fù)責(zé)各個(gè)組件的大小和位置,因此用戶(hù)無(wú)法在這種情況下設(shè)置組件的這些屬性。如果試圖使用Java 語(yǔ)言提供的setLocation(),setSize(),setBounds() 等方法,則都會(huì)被布局管理器覆蓋。

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

 setLayout(null);

5.1.3 常用容器

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

有三種類(lèi)型的容器: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!');

 //構(gòu)造方法

fr.setSize(200,200);

//設(shè)置Frame的大小,缺省為(0,0)

fr.setBackground(Color.red);

//設(shè)置Frame的背景,缺省為紅色

fr.setVisible(true);

//設(shè)置Frame為可見(jiàn),缺省為不可見(jiàn)

}

 public MyFrame (String str){

super(str); //調(diào)用父類(lèi)的構(gòu)造方法

 }

}

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

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

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的背景顏色設(shè)置為紅色

fr.setLayout(null);

 //取消布局管理器

pan.setSize(100,100);

pan.setBackground(Color.yellow);

 //設(shè)置面板pan的背景顏色為黃色

fr.add(pan); //用add方法把面板pan添加到框架fr中

fr.setVisible(true);

}

}

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

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: chinese在线 | 欧美一级久久久久久久大片 | 在线欧美视频免费观看国产 | 欧美在线乱妇一级毛片 | 国产黄色一级大片 | 午夜在线观看视频免费 成人 | 伦理亚洲 | 97国内免费久久久久久久久久 | 国产剧情麻豆mv在线观看 | 伊人成伊人成综合网2222 | 国产亚洲精品国看不卡 | 国产精品好好热在线观看 | 免费黄色网络 | 图片综合区| 在线观看日韩欧美 | 一级黄色片子 | 国产精品大全国产精品 | 久久综合亚洲一区二区三区 | 国产成人18黄网站麻豆 | 成人伊人青草久久综合网破解版 | 亚洲一区黄色 | 久青草视频97国内免费影视 | 国产精品福利自产拍网站 | 福利一二三区 | 国产精品免费看香蕉 | 自拍偷拍视频在线观看 | 91仓本c仔约高挑嫩模在线 | 久久久久国产成人精品 | 99re在线播放 | 青草青草伊人精品视频 | 80年代毛片dvd版 | 中文字幕日韩一区二区 | 午夜欧美成人久久久久久 | 亚洲永久中文字幕在线 | 九九精品免视频国产成人 | 日本高清免费毛片久久看 | 亚洲欧美日韩中文综合v日本 | 91成人在线视频 | 日本r级在线 | 77久久| 你懂的网站在线观看网址 |