語言程序設(shè)計資料:九 圖形用戶界面

上傳人:努力****83 文檔編號:240058544 上傳時間:2024-03-13 格式:PPT 頁數(shù):184 大?。?.29MB
收藏 版權(quán)申訴 舉報 下載
語言程序設(shè)計資料:九 圖形用戶界面_第1頁
第1頁 / 共184頁
語言程序設(shè)計資料:九 圖形用戶界面_第2頁
第2頁 / 共184頁
語言程序設(shè)計資料:九 圖形用戶界面_第3頁
第3頁 / 共184頁

下載文檔到電腦,查找使用更方便

50 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《語言程序設(shè)計資料:九 圖形用戶界面》由會員分享,可在線閱讀,更多相關(guān)《語言程序設(shè)計資料:九 圖形用戶界面(184頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、九九 圖形用戶界面圖形用戶界面 AWT和Swing窗口的基本原理Java布局管理Java事件處理Swing組件Java多媒體處理Applet圖形用戶界面21.1.AWT和Swing字符界面字符界面用字符串、命令行的方式與用戶交互用字符串、命令行的方式與用戶交互圖形用戶界面圖形用戶界面圖形用戶界面圖形用戶界面(Graphics User Interface(Graphics User Interface,GUI)GUI):用圖:用圖形的方式,借助菜單、按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,形的方式,借助菜單、按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,幫助用戶方便地向計算機系統(tǒng)發(fā)出指令、啟動操作,并幫助用戶方便地向計

2、算機系統(tǒng)發(fā)出指令、啟動操作,并將系統(tǒng)運行的結(jié)果同樣以圖形方式顯示給用戶的技術(shù)。將系統(tǒng)運行的結(jié)果同樣以圖形方式顯示給用戶的技術(shù)。用直觀的圖形來表示數(shù)據(jù)用直觀、方便的GUI標(biāo)準(zhǔn)組件來接收命令GUI組成成分的標(biāo)準(zhǔn)化應(yīng)用程序與用戶交互的方式,利用它可以接受用戶的輸應(yīng)用程序與用戶交互的方式,利用它可以接受用戶的輸入并向用戶輸出程序運行的結(jié)果。入并向用戶輸出程序運行的結(jié)果。圖形用戶界面3AWT和SwingJavaJava語言提供了兩個處理圖形用戶界面的類語言提供了兩個處理圖形用戶界面的類庫:庫:java.awtjava.awt包和包和javax.swingjavax.swing包。包。AWTAWT是抽象窗

3、口工具集是抽象窗口工具集Abstract Window ToolkitAbstract Window Toolkit的英文的英文縮寫??s寫?!俺橄蟠翱诔橄蟠翱凇笔沟瞄_發(fā)人員所設(shè)計的界面獨立于使得開發(fā)人員所設(shè)計的界面獨立于具體的界面實現(xiàn)。即開發(fā)人員用具體的界面實現(xiàn)。即開發(fā)人員用AWTAWT開發(fā)出的圖形用戶開發(fā)出的圖形用戶界面可以適用于所有的平臺系統(tǒng)。界面可以適用于所有的平臺系統(tǒng)。SwingSwing是是一個一個帶帶有豐富有豐富組組件的件的GUIGUI工具包,它工具包,它組組成了成了JFCJFC的用的用戶戶界面功能的核心部分。界面功能的核心部分。SwingSwing與與AWTAWT核心核心組組件的

4、配合件的配合為為JavaJava應(yīng)應(yīng)用程序提供了一個用程序提供了一個更更強強大的大的GUIGUI。圖形用戶界面4ljava.awtjava.awt包包設(shè)計設(shè)計JavaJava圖形用戶界面的基本元素由抽象窗口工具圖形用戶界面的基本元素由抽象窗口工具集集-AWT-AWT提供,主要包括用戶界面組件、事件處理模型、圖提供,主要包括用戶界面組件、事件處理模型、圖形和圖像工具、布局管理器等,它們都在形和圖像工具、布局管理器等,它們都在java.awtjava.awt包中。包中。AWTAWT是是JFCJFC的一部分,它的一部分,它為為大大規(guī)規(guī)模的模的GUIGUI開開發(fā)發(fā)提供了豐富的提供了豐富的基基礎(chǔ)結(jié)礎(chǔ)結(jié)構(gòu)

5、。構(gòu)。Java.awtJava.awt包主要由包主要由組組件件類類、事件、事件類類、布局、布局類類、菜菜單類單類等等組組成。成。圖形用戶界面5java.lang.ObjectGraphicsImageColorFontBorderLayoutFlowLayoutGridLayoutCardLayoutCompontentCheckBoxGroupAWTEventMenuComponentContainerButtonLabelTextComponentCheckBoxChoiceListCanvasScrollBarWindowPanelTextFieldTextAreaFrameDialog

6、FileDialogjava.applet.Applet圖圖9.1 java.awt包中的主要類及組件類包中的主要類及組件類圖形用戶界面6AWTAWT組件分類組件分類JavaJava中構(gòu)成圖形用戶界面的各種元素稱為組件中構(gòu)成圖形用戶界面的各種元素稱為組件(Component)(Component)。JavaJava程序要顯示的程序要顯示的GUIGUI組件都是抽象類組件都是抽象類java.awt.Componentjava.awt.Component或或java.awt.MenuComponentjava.awt.MenuComponent(與菜單有關(guān)的組件)(與菜單有關(guān)的組件)的子類。的子類。

7、圖形用戶界面7組件分為容器組件分為容器(Container)(Container)類組件和非類組件和非容器類組件兩大類:容器類組件兩大類:容器類組件本身也是組件,但容器中可以包容器類組件本身也是組件,但容器中可以包含其他組件,也可以包含其他容器;含其他組件,也可以包含其他容器;非容器類組件是不能再包含其他組件的組件,非容器類組件是不能再包含其他組件的組件,其種類較多,如按鈕其種類較多,如按鈕(Button)(Button)、標(biāo)簽、標(biāo)簽(Label)(Label)、文本類組件文本類組件(TextComponent)(TextComponent)等。等。圖形用戶界面8容器又分為兩種:頂層容器和非頂

8、層容器。容器又分為兩種:頂層容器和非頂層容器。頂層容器是可以獨立的窗口,頂層容器的類是頂層容器是可以獨立的窗口,頂層容器的類是WindowWindow,WindowWindow的重要子類是的重要子類是FrameFrame和和DialogDialog;非頂層容器,不是獨立的窗口,它們必須位于窗口非頂層容器,不是獨立的窗口,它們必須位于窗口之內(nèi),非頂層容器包括之內(nèi),非頂層容器包括PanelPanel及及ScrollPanelScrollPanel等。等。圖形用戶界面9容器類容器類容器類容器類ContainerContainer是組件類是組件類ComponentComponent的子類,其特點的子類

9、,其特點是容器中可以容納其他組件。是容器中可以容納其他組件。使用使用add()add()方法可以將其他組件加入到容器中,組件方法可以將其他組件加入到容器中,組件的位置和大小由布局管理器決定。的位置和大小由布局管理器決定。如要人工控制組件在容器中的大小和位置,可取消布如要人工控制組件在容器中的大小和位置,可取消布局管理器的頁面設(shè)置,即調(diào)用方法局管理器的頁面設(shè)置,即調(diào)用方法setLayout(null)setLayout(null),然后使用然后使用ComponentComponent類的類的setLocation()setLocation()、setSize()setSize()、setBoun

10、dssetBounds()()等方法設(shè)定其大小和位置。等方法設(shè)定其大小和位置。圖形用戶界面10窗口與面板窗口與面板容器類有兩個主要子類:容器類有兩個主要子類:WindowWindow類,可以自由類,可以自由移動、不依賴其他容器存在的窗口;移動、不依賴其他容器存在的窗口;PanelPanel類與類與窗口類類似,但沒有標(biāo)題,且不能獨立存在,必窗口類類似,但沒有標(biāo)題,且不能獨立存在,必須包含在另一個容器中。須包含在另一個容器中??蚣茴惪蚣茴怓rameFrame的應(yīng)用的應(yīng)用窗口類窗口類WindowWindow有兩個主要組件:框架有兩個主要組件:框架FrameFrame,帶標(biāo)題且可以改變大小的窗口;對話

11、框帶標(biāo)題且可以改變大小的窗口;對話框DialogDialog,帶標(biāo)題欄但不能改變大小的窗口。帶標(biāo)題欄但不能改變大小的窗口。圖形用戶界面11用Frame類創(chuàng)建窗口Frame類的許多方法是從它的父類Window或更上層的類Container和Component繼承過來的。Frame類具有以下特點:它是Window類的直接子類Frame類對象顯示效果是有個窗口,帶有標(biāo)題和尺寸重置角標(biāo)默認(rèn)初始化是不可見的,可以使用setVisible(true)方法使之變?yōu)榭梢娔J(rèn)的布局管理器是BorderLayout,可使用setLayout()方法改變默認(rèn)布局管理器圖形用戶界面12例例9.19.1:框架窗口的創(chuàng)建

12、。:框架窗口的創(chuàng)建。/app9_1.java/app9_1.javaimport java.awt.*;/import java.awt.*;/加載加載java.awtjava.awt類庫里的所有類類庫里的所有類import java.awt.event.*;import java.awt.event.*;public class app9_1public class app9_1static Frame frm=new Frame(static Frame frm=new Frame(這是個這是個AWTAWT程序程序););public static void main(String arg

13、s)public static void main(String args)Label lab=new Label(Label lab=new Label(我是一個標(biāo)簽我是一個標(biāo)簽););/創(chuàng)建一個標(biāo)簽對象創(chuàng)建一個標(biāo)簽對象lablabfrm.setSize(180,140);/frm.setSize(180,140);/設(shè)置框架大?。簩捲O(shè)置框架大?。簩?80180,高,高140140 frm.setBackground(Color.yellow);/frm.setBackground(Color.yellow);/設(shè)置框架背景顏色設(shè)置框架背景顏色 frm.setLocation(250,150

14、);frm.setLocation(250,150);/設(shè)置窗口的位置,相對于屏幕左上角設(shè)置窗口的位置,相對于屏幕左上角frm.add(lab);/frm.add(lab);/將標(biāo)簽對象將標(biāo)簽對象lablab加入窗口中加入窗口中 frm.addWindowListener(new WindowClose();frm.addWindowListener(new WindowClose();frm.setVisible(true);/frm.setVisible(true);/將窗口顯示出來將窗口顯示出來 圖形用戶界面13static class WindowClose extends Windo

15、wAdapterstatic class WindowClose extends WindowAdapterpublic void windowClosing(WindowEvent e)public void windowClosing(WindowEvent e)System.exit(0);System.exit(0);圖形用戶界面14面面板板類類PanelPanel是是容容器器類類的的直直接接子子類類,是是一一種種沒沒有有標(biāo)標(biāo)題題的的容容器器,并并且且實實例例化化后后必必須須使使用用ContainerContainer類類的的add()add()方方法法裝入到窗口對象中。裝入到窗口對象

16、中。PanelPanel類具有如下特點:類具有如下特點:它不是頂層類,它必須位于窗口或其他容器之內(nèi)它不是頂層類,它必須位于窗口或其他容器之內(nèi)它它提提供供可可以以容容納納其其他他組組件件的的支支持持,在在程程序序中中經(jīng)經(jīng)常常用用于于布局和定位布局和定位它可以采用和所在容器不同的布局管理器它可以采用和所在容器不同的布局管理器l面板類面板類PanelPanel的應(yīng)用的應(yīng)用圖形用戶界面15例例9.2:在框架窗口中加入:在框架窗口中加入panel。/app9_2.java/app9_2.javaimport java.awt.*;/import java.awt.*;/加載加載java.awtjava.

17、awt類庫里的所有類類庫里的所有類import java.awt.event.*;import java.awt.event.*;public class app9_2public class app9_2 public static void main(String args)public static void main(String args)Frame frm=new Frame(“Frame frm=new Frame(“我的框架我的框架”););frm.setSize(300,200);frm.setSize(300,200);frm.setLocation(500,400);fr

18、m.setLocation(500,400);frm.setBackground(Color.lightGray);frm.setBackground(Color.lightGray);Panel pan=new Panel();Panel pan=new Panel();pan.setSize(150,100);pan.setSize(150,100);pan.setLocation(50,50);pan.setLocation(50,50);pan.setBackground(Color.green);pan.setBackground(Color.green);圖形用戶界面16 Butt

19、on bun=new Button(“Button bun=new Button(“點擊我點擊我”););bun.setSize(80,20);bun.setSize(80,20);bun.setLocation(50,50);bun.setLocation(50,50);bun.setBackground(Color.yellow);bun.setBackground(Color.yellow);frm.frm.setLayoutsetLayout(null);/(null);/取消取消frmfrm的默認(rèn)布局管理器的默認(rèn)布局管理器 pan.pan.setLayoutsetLayout(nul

20、l);/(null);/取消取消panpan的默認(rèn)布局管理器的默認(rèn)布局管理器 pan.pan.addadd(bun);/(bun);/將命令按鈕加入到面板中將命令按鈕加入到面板中 frm.frm.addadd(pan);/(pan);/將面板加入到窗口中將面板加入到窗口中 frm.addWindowListener(new WindowClose();frm.addWindowListener(new WindowClose();frm.setVisible(true);frm.setVisible(true);static class WindowClose extends WindowAd

21、apterstatic class WindowClose extends WindowAdapter public void windowClosing(WindowEvent e)public void windowClosing(WindowEvent e)System.exit(0);System.exit(0);圖形用戶界面17非容器類非容器類非容器類組件,又稱為控制組件,簡稱控件。非容器類組件,又稱為控制組件,簡稱控件。與容器不同,它里面不能再包含其他組件。與容器不同,它里面不能再包含其他組件。常用的控件常用的控件:命令類命令類 按鈕按鈕ButtonButton選擇類選擇類 單選按

22、鈕單選按鈕CheckboxGroupCheckboxGroup、復(fù)選框、復(fù)選框CheckboxCheckbox、列表框、列表框ListList、下拉列表框、下拉列表框ChoiceChoice文字處理類文字處理類 文本框文本框TextFieldTextField、文本區(qū)域、文本區(qū)域TextAreaTextArea圖形用戶界面18顏色類與字體類顏色類與字體類顏色類顏色類ColorColor是是java.awtjava.awt類庫里常用的類之一,類庫里常用的類之一,在在JavaJava中每一種顏色都看成是由紅中每一種顏色都看成是由紅(R)(R)、綠、綠(G)(G)、藍(lán)、藍(lán)(B)(B)三原色組成。三原

23、色組成。ColorColor類的構(gòu)造方法采用如下格式:類的構(gòu)造方法采用如下格式:Color(int r,int g,int b)Color(int r,int g,int b)每個參數(shù)的取值都在每個參數(shù)的取值都在0 0到到255255之間,數(shù)值越大表之間,數(shù)值越大表明這種顏色的成分越重。明這種顏色的成分越重。圖形用戶界面19Color類中還定義了一些標(biāo)準(zhǔn)的Color對象存儲在類變量中,使得對這些標(biāo)準(zhǔn)顏色的引用更加方便。變量名變量名代表顏色代表顏色black或或BLACK黑色黑色blue或或BLUE藍(lán)色藍(lán)色cyan或或CYAN藍(lán)紫色藍(lán)紫色darkGray或或DARKGRAY深灰色深灰色gray或

24、或GRAY灰色灰色lightGray或或LIGHTGRAY淺灰色淺灰色green或或GREEN綠色綠色magenta或或MAGENTA紅紫色紅紫色orange或或ORANGE橘紅色橘紅色pink或或PINK粉紅色粉紅色red或或RED紅色紅色white或或WHITE白色白色yellow或或YELLOW黃色黃色圖形用戶界面20FontFont類是用來規(guī)范組件所用的字體樣式、大小與字形等。許類是用來規(guī)范組件所用的字體樣式、大小與字形等。許多方法都需要將多方法都需要將FontFont類所創(chuàng)建的對象當(dāng)成它的參數(shù),用以設(shè)置組類所創(chuàng)建的對象當(dāng)成它的參數(shù),用以設(shè)置組件的字體。要創(chuàng)建字體類對象,可以使用字體類

25、的構(gòu)造方法,其件的字體。要創(chuàng)建字體類對象,可以使用字體類的構(gòu)造方法,其格式如下:格式如下:Font(String font_name,int style,int size)Font(String font_name,int style,int size)font_namefont_name表示表示-字體名稱??梢允亲煮w外觀名稱或字體系列字體名稱。可以是字體外觀名稱或字體系列名稱,并可表示此名稱,并可表示此 GraphicsEnvironment 中找到的邏輯字體或中找到的邏輯字體或物理字體。邏輯字體的系列名稱有:物理字體。邏輯字體的系列名稱有:Dialog、DialogInput、Monosp

26、aced、Serif 或或 SansSerif。如果。如果 name 為為 null,則將,則將新新 Font 的的 邏輯字體名稱(由邏輯字體名稱(由 getName()返回)設(shè)置為返回)設(shè)置為 Default。stylestyle表示字形的樣式表示字形的樣式常量常量,樣式參數(shù)是整數(shù)位掩碼,樣式參數(shù)是整數(shù)位掩碼,可以設(shè)可以設(shè)置為置為Font.PLAIN(Font.PLAIN(一般一般)、Font.BOLD(Font.BOLD(粗體粗體)、Font.ITALIC(Font.ITALIC(斜體斜體)。如想同時設(shè)置為粗體與斜體可用語句。如想同時設(shè)置為粗體與斜體可用語句Font.BOLD+Font.I

27、TALICFont.BOLD+Font.ITALIC來實現(xiàn)。來實現(xiàn)。圖形用戶界面21組件組件有了窗口之后,還要創(chuàng)建其他組件,然后將其有了窗口之后,還要創(chuàng)建其他組件,然后將其添加到窗口中:添加到窗口中:標(biāo)簽標(biāo)簽按鈕按鈕文本編輯組件文本編輯組件復(fù)選框組件復(fù)選框組件圖形用戶界面22創(chuàng)建標(biāo)簽創(chuàng)建標(biāo)簽標(biāo)簽標(biāo)簽labellabel是用來在窗口中顯示文字的控件,它可用是用來在窗口中顯示文字的控件,它可用java.awtjava.awt類庫里的類庫里的LabelLabel類創(chuàng)建。類創(chuàng)建。LabelLabel類常用方法如下:類常用方法如下:注意:上表中,標(biāo)簽的對齊方式或注意:上表中,標(biāo)簽的對齊方式或align的

28、值可以為的值可以為Label.LEFT、Label.RIGHT、Label.CENTER,分別表示靠左、靠右和居中對齊。,分別表示靠左、靠右和居中對齊。方方 法法功能說明功能說明public Label()創(chuàng)建一個沒有文字的標(biāo)簽創(chuàng)建一個沒有文字的標(biāo)簽public Label(String text)創(chuàng)建標(biāo)簽,并以創(chuàng)建標(biāo)簽,并以text為該標(biāo)簽上的文字為該標(biāo)簽上的文字public Label(String text,int align)創(chuàng)建標(biāo)簽,以創(chuàng)建標(biāo)簽,以text為該標(biāo)簽上的文字,為該標(biāo)簽上的文字,并以并以align的方式對齊的方式對齊public int getAlignment()返回標(biāo)

29、簽上文字的對齊方式返回標(biāo)簽上文字的對齊方式public void setAlignment(int align)設(shè)置標(biāo)簽上文字的對齊方式設(shè)置標(biāo)簽上文字的對齊方式publilc String getText()返回標(biāo)簽上顯示的文字返回標(biāo)簽上顯示的文字public void setText(String text)將標(biāo)簽上的文字設(shè)置為將標(biāo)簽上的文字設(shè)置為text圖形用戶界面23例例9.39.3:在框架窗口中加入指定大小的標(biāo)簽。:在框架窗口中加入指定大小的標(biāo)簽。/app9_3.java /app9_3.java 指定標(biāo)簽對象的大小指定標(biāo)簽對象的大小import java.awt.*;import j

30、ava.awt.*;import java.awt.event.*;import java.awt.event.*;public class app9_3public class app9_3static Frame frm=new Frame(static Frame frm=new Frame(“標(biāo)簽類窗口標(biāo)簽類窗口”););static Label lab=new Label();/static Label lab=new Label();/創(chuàng)建標(biāo)簽對象創(chuàng)建標(biāo)簽對象public static void main(String args)public static void main(St

31、ring args)frm.setLayout(null);frm.setLayout(null);/取消頁面設(shè)置,無該句效果如何?取消頁面設(shè)置,無該句效果如何?f frm.setSize(300,200);rm.setSize(300,200);frm.setBackground(Color.pinkfrm.setBackground(Color.pink);/);/設(shè)置窗口底色為粉紅色設(shè)置窗口底色為粉紅色lab.setText(lab.setText(“我是一個標(biāo)簽我是一個標(biāo)簽”););/設(shè)置標(biāo)簽顯示的文字設(shè)置標(biāo)簽顯示的文字lab.setAlignment(Label.CENTER);la

32、b.setAlignment(Label.CENTER);/將標(biāo)簽文字居中將標(biāo)簽文字居中 lab.setBackground(Color.yellow);lab.setBackground(Color.yellow);/設(shè)置標(biāo)簽底色為黃色設(shè)置標(biāo)簽底色為黃色lab.setForeground(Color.red);lab.setForeground(Color.red);/設(shè)置標(biāo)簽上文字為紅色設(shè)置標(biāo)簽上文字為紅色lab.setLocation(120,90);lab.setLocation(120,90);/設(shè)置標(biāo)簽位置設(shè)置標(biāo)簽位置圖形用戶界面24lab.setSize(130,30);lab.

33、setSize(130,30);Font fnt=new Font fnt=new Font(Font(“SeriefSerief”,Font.BOLD+Font.ITALIC,20);,Font.BOLD+Font.ITALIC,20);lab.setFont(fnt);/lab.setFont(fnt);/設(shè)置標(biāo)簽上字體的樣式設(shè)置標(biāo)簽上字體的樣式frm.add(lab);/frm.add(lab);/將標(biāo)簽加入到窗口中將標(biāo)簽加入到窗口中frm.addWindowListener(new WindowClose();frm.addWindowListener(new WindowClose(

34、);frm.setVisible(true);frm.setVisible(true);static class WindowClose extends WindowAdapterstatic class WindowClose extends WindowAdapter public void windowClosing(WindowEvent e)System.exit(0);public void windowClosing(WindowEvent e)System.exit(0);圖形用戶界面25創(chuàng)建命令按鈕創(chuàng)建命令按鈕命令按鈕命令按鈕(Button)(Button)是窗口程序設(shè)計中最

35、常用的是窗口程序設(shè)計中最常用的一種控件之一,用戶可以按下它來控制程序運行的一種控件之一,用戶可以按下它來控制程序運行的流程。流程。java.awtjava.awt類庫提供了類庫提供了ButtonButton類,用來處理按類,用來處理按鈕控件的相關(guān)操作。按鈕創(chuàng)建之后通過容器的鈕控件的相關(guān)操作。按鈕創(chuàng)建之后通過容器的add()add()方法將其放入到容器中。方法將其放入到容器中。ButtonButton類常用方法如下:類常用方法如下:方方 法法功能說明功能說明public Button()創(chuàng)建一個沒有標(biāo)題的按鈕創(chuàng)建一個沒有標(biāo)題的按鈕public Button(String label)創(chuàng)建一個以創(chuàng)

36、建一個以label為標(biāo)題的按鈕為標(biāo)題的按鈕public String getLabel()返回按鈕上的標(biāo)題返回按鈕上的標(biāo)題public void setLabel(String label)設(shè)置按鈕上的標(biāo)題為設(shè)置按鈕上的標(biāo)題為label圖形用戶界面26例例9.49.4:在框架窗口中加入按鈕:在框架窗口中加入按鈕import java.awt.*;import java.awt.*;import java.awt.event.*;import java.awt.event.*;public class app9_4 extends Frame/public class app9_4 extend

37、s Frame/指定指定app9_4app9_4繼承自繼承自FrameFrame類類 public static void main(String args)public static void main(String args)app9_4 frm=new app9_4();/app9_4 frm=new app9_4();/用用app9_4app9_4類創(chuàng)建類創(chuàng)建frmfrm對象對象 Button btn=new Button(Button btn=new Button(確定確定);/);/創(chuàng)建按鈕對象創(chuàng)建按鈕對象 frm.setLayout(null);/frm.setLayout(nu

38、ll);/取消頁面設(shè)置取消頁面設(shè)置 frm.setSize(220,150);frm.setSize(220,150);frm.setTitle(frm.setTitle(按鈕類窗口按鈕類窗口););btn.setBounds(50,70,100,40);/btn.setBounds(50,70,100,40);/設(shè)置按鈕的大小與位置設(shè)置按鈕的大小與位置 frm.add(btn);frm.add(btn);frm.addWindowListener(new WindowClose();frm.addWindowListener(new WindowClose();frm.setVisible(

39、true);frm.setVisible(true);static class WindowClose extends WindowAdapter static class WindowClose extends WindowAdapter public void windowClosing(WindowEvent e)System.exit(0);public void windowClosing(WindowEvent e)System.exit(0);圖形用戶界面27創(chuàng)建文本編輯組件創(chuàng)建文本編輯組件文本編輯組件是可以接收用戶的文本輸入并具有一定編文本編輯組件是可以接收用戶的文本輸入并具有

40、一定編輯功能的界面元素。輯功能的界面元素。文本編輯組件分為兩種,一種是單行文本編輯組件,簡文本編輯組件分為兩種,一種是單行文本編輯組件,簡稱文本框稱文本框TextFieldTextField,另一種是多行文本編輯組件,簡稱文本,另一種是多行文本編輯組件,簡稱文本區(qū)區(qū)TextAreaTextArea。文本框中只有一行文本,即使文本的內(nèi)容超出。文本框中只有一行文本,即使文本的內(nèi)容超出了文本框的寬度也不會折行;而文本區(qū)可以實現(xiàn)多行文本的了文本框的寬度也不會折行;而文本區(qū)可以實現(xiàn)多行文本的輸入,且可以自動折行。輸入,且可以自動折行。圖形用戶界面28TextFieldTextField類和類和TextA

41、reaTextArea類都是類都是java.awt.TextComponentjava.awt.TextComponent類的子類,類的子類,TextComponentTextComponent類里提供了許多常用的方法給類里提供了許多常用的方法給TextFieldTextField類和類和TextAreaTextArea類使用,具體如下:類使用,具體如下:方方 法法功能說明功能說明public Color getBackground()返回背景顏色返回背景顏色public void setBackground(Color c)設(shè)置背景顏色設(shè)置背景顏色public String getText(

42、)返回文本組件里的文本返回文本組件里的文本public void select(int selStart,int selEnd)選擇位置為選擇位置為selStart與與selEnd之間之間的文本的文本public void selectAll()選擇文本組件里的所有文本選擇文本組件里的所有文本public String getSelectedText()返回被選中的文本返回被選中的文本public boolean isEditable()測試文本組件中的文本可否被編輯測試文本組件中的文本可否被編輯public void setEditable(boolean b)設(shè)置文本組件中的文本可否被編輯

43、設(shè)置文本組件中的文本可否被編輯圖形用戶界面29創(chuàng)建文本框文本框是一個能夠接收用戶通過鍵盤輸入的文本的一小塊區(qū)域。Java語言用TextField類來創(chuàng)建文本框,其常用方法如下:方方 法法功能說明功能說明public TextField()創(chuàng)建文本框創(chuàng)建文本框public TextField(int columns)創(chuàng)建可以容納創(chuàng)建可以容納columns個字符的文本框個字符的文本框public TextField(String text)創(chuàng)建以創(chuàng)建以text為默認(rèn)文本的文本框為默認(rèn)文本的文本框public TextField(String text,int columns)創(chuàng)建以創(chuàng)建以text為

44、默認(rèn)文本為默認(rèn)文本,可以容納可以容納columns個字符的文本框個字符的文本框public int getColumns()返回文本框默認(rèn)的寬度,以字符為單位返回文本框默認(rèn)的寬度,以字符為單位public void setColumns(int columns)設(shè)置文本框的寬度為設(shè)置文本框的寬度為columns個字符個字符public void setEchoCharacter(char c)設(shè)置文本框的回顯字符設(shè)置文本框的回顯字符public void setText(String text)設(shè)置文本框的字符為設(shè)置文本框的字符為text圖形用戶界面30創(chuàng)建文本區(qū)文本區(qū)實際上是多行文本輸入框,

45、因為文本框只能輸入一行文字,所以在需要輸入和顯示較多的文字時,就可以使用文本區(qū)。文本區(qū)是由TextArea類來實現(xiàn)的。下面是TextArea類的數(shù)據(jù)成員和常用方法。注意:如果將文本區(qū)設(shè)置為具有水平滾動條的話,則文本區(qū)的自動換行功能便會被自動取消。數(shù)據(jù)成員數(shù)據(jù)成員功能說明功能說明public SCROLLBARS_BOTH設(shè)置文本區(qū)具有垂直與水平滾動條設(shè)置文本區(qū)具有垂直與水平滾動條public SCROLLBARS_HORIZONTAL_ONLY設(shè)置文本區(qū)只具有水平滾動條設(shè)置文本區(qū)只具有水平滾動條public SCROLLBARS_VERTICAL_ONLY設(shè)置文本區(qū)只具有垂直滾動條設(shè)置文本區(qū)只

46、具有垂直滾動條public SCROLLBARS_NONE設(shè)置文本區(qū)沒有滾動條設(shè)置文本區(qū)沒有滾動條圖形用戶界面31方方 法法功能說明功能說明public TextArea()創(chuàng)建一個文本區(qū)創(chuàng)建一個文本區(qū)public TextArea(int rows,int cols)創(chuàng)建一個創(chuàng)建一個rows行行cols列的文本區(qū)列的文本區(qū)public TextArea(String text)創(chuàng)建一個默認(rèn)文本為創(chuàng)建一個默認(rèn)文本為text的文本區(qū)的文本區(qū)public TextArea(String text,int rows,int cols)創(chuàng)建一個創(chuàng)建一個rows行行cols列默認(rèn)文本為列默認(rèn)文本為tex

47、t的文本區(qū)的文本區(qū)public TextArea(String text,int rows,int cols,int scrollbars)創(chuàng)建一個創(chuàng)建一個rows行行cols列默認(rèn)文本為列默認(rèn)文本為text并加上滾動條的文本區(qū)并加上滾動條的文本區(qū)public void setText(String txt)設(shè)置文本區(qū)內(nèi)的文字為設(shè)置文本區(qū)內(nèi)的文字為txtpublic void insertText(String str,int pos)在文本區(qū)的在文本區(qū)的pos位置插入字符串位置插入字符串strpublic void replaceText(String str,int start,int e

48、nd)將文本區(qū)內(nèi)從將文本區(qū)內(nèi)從start開始到開始到end結(jié)束的字結(jié)束的字符串用符串用str替換替換public int getRows()返回文本區(qū)的行數(shù)返回文本區(qū)的行數(shù)public void setRows(int rows)設(shè)置文本區(qū)可顯示的行數(shù)為設(shè)置文本區(qū)可顯示的行數(shù)為rowspublic int getColumns()返回文本區(qū)的列數(shù)返回文本區(qū)的列數(shù)public void setColumns(int columns)設(shè)置文本區(qū)可顯示的列數(shù)為設(shè)置文本區(qū)可顯示的列數(shù)為columnspublic int getScrollbarVisibility()返回滾動條的顯示狀態(tài)返回滾動條的顯

49、示狀態(tài)圖形用戶界面32例例9.59.5:在框架窗口中加入文本編輯框:在框架窗口中加入文本編輯框import java.awt.*;import java.awt.*;import java.awt.event.*;import java.awt.event.*;public class app9_5 extends Framepublic class app9_5 extends Frame TextField tf1=new TextField(TextField tf1=new TextField(該文本不可編輯該文本不可編輯,20);,20);static TextField tf2=n

50、ew TextField(static TextField tf2=new TextField(口令輸入口令輸入,20);,20);public app9_5(String str)/public app9_5(String str)/構(gòu)造方法構(gòu)造方法 super(str);/super(str);/調(diào)用父類調(diào)用父類FrameFrame的構(gòu)造方法的構(gòu)造方法 tf1.setBounds(20,60,120,20);tf1.setBounds(20,60,120,20);tf1.setEditable(false);/tf1.setEditable(false);/設(shè)置文本框?qū)ο笤O(shè)置文本框?qū)ο髏f

51、1tf1為不可編輯為不可編輯 add(tf1);/add(tf1);/將文本框?qū)ο蠹尤氲酱翱谥袑⑽谋究驅(qū)ο蠹尤氲酱翱谥?static class WindowClose extends WindowAdapter static class WindowClose extends WindowAdapter public void windowClosing(WindowEvent e)public void windowClosing(WindowEvent e)System.exit(0);System.exit(0);圖形用戶界面33public static void main(Stri

52、ng args)public static void main(String args)app9_5 frm=new app9_5(app9_5 frm=new app9_5(文本編輯功能文本編輯功能);/);/調(diào)用主類構(gòu)造方法調(diào)用主類構(gòu)造方法TextArea ta=new TextArea(TextArea ta=new TextArea(“您好您好”,10,20,TextArea.SCROLLBARS_VERTICAL_ONLY);10,20,TextArea.SCROLLBARS_VERTICAL_ONLY);frm.setLocation(200,150);frm.setLocatio

53、n(200,150);frm.setSize(200,150);frm.setSize(200,150);frm.setLayout(null);/frm.setLayout(null);/取消頁面設(shè)置取消頁面設(shè)置tf2.setBounds(20,30,120,20);tf2.setBounds(20,30,120,20);tf2.setEchoChar(*);/tf2.setEchoChar(*);/設(shè)置文本框?qū)ο蟮脑O(shè)置文本框?qū)ο蟮膖f2tf2的回顯字符為的回顯字符為*ta.setBounds(20,90,140,100);ta.setBounds(20,90,140,100);frm.ad

54、d(tf2);frm.add(tf2);frm.add(ta);frm.add(ta);System.out.println(tf2.getText();System.out.println(tf2.getText();frm.addWindowListener(new WindowClose();frm.addWindowListener(new WindowClose();frm.setVisible(true);frm.setVisible(true);說明:說明:getText()getText()是是TextFieldTextField類繼承自類繼承自TextComponentTex

55、tComponent而來的方法而來的方法圖形用戶界面34創(chuàng)建復(fù)選框組件創(chuàng)建復(fù)選框組件復(fù)選框復(fù)選框(Checkbox)(Checkbox)是讓用戶選取項目的一種組件,用是讓用戶選取項目的一種組件,用戶利用該組件來獲得相應(yīng)的輸入。它具有狀態(tài)屬性,用戶可戶利用該組件來獲得相應(yīng)的輸入。它具有狀態(tài)屬性,用戶可以通過鼠標(biāo)單擊操作來設(shè)置其狀態(tài)為以通過鼠標(biāo)單擊操作來設(shè)置其狀態(tài)為“選中選中(on)(on)”或或“非選非選中中(off)(off)”。JavaJava語言提供了語言提供了CheckboxCheckbox類來創(chuàng)建復(fù)選框。復(fù)類來創(chuàng)建復(fù)選框。復(fù)選框分為復(fù)選和單選兩種,其中復(fù)選選框分為復(fù)選和單選兩種,其中復(fù)

56、選CheckboxCheckbox可以單獨使用,可以單獨使用,而單選框還必須配合而單選框還必須配合CheckboxGroupCheckboxGroup類將其組成組來使用,類將其組成組來使用,在這種情況下,在在這種情況下,在CheckboxGroupCheckboxGroup類管轄的所有類管轄的所有CheckboxCheckbox類類中,只能有一個中,只能有一個CheckboxCheckbox組件處于組件處于onon狀態(tài)。狀態(tài)。圖形用戶界面35復(fù)選框復(fù)選框(Checkbox)(Checkbox)常用的方法如下:常用的方法如下:方方 法法功能說明功能說明public Checkbox()創(chuàng)建一個沒

57、有文字顯示的復(fù)選框創(chuàng)建一個沒有文字顯示的復(fù)選框public Checkbox(String label)創(chuàng)建一個以創(chuàng)建一個以label為標(biāo)簽的復(fù)選框為標(biāo)簽的復(fù)選框public Checkbox(String label,boolean state)創(chuàng)建一個以創(chuàng)建一個以label為標(biāo)簽,狀態(tài)為為標(biāo)簽,狀態(tài)為state的的復(fù)選框,若復(fù)選框,若state為為true則表示其被選中則表示其被選中public Checkbox(String label,boolean state,CheckboxGroup grp)創(chuàng)建一個以創(chuàng)建一個以label為標(biāo)簽,狀態(tài)為為標(biāo)簽,狀態(tài)為state的的復(fù)選框,并將其加

58、入到復(fù)選框組復(fù)選框,并將其加入到復(fù)選框組grp中中public boolean getState()返回復(fù)選框被選中與否的狀態(tài)返回復(fù)選框被選中與否的狀態(tài)public void setState(boolean state)設(shè)置復(fù)選框被選中與否的狀態(tài)設(shè)置復(fù)選框被選中與否的狀態(tài)public String getLabel()返回復(fù)選框上顯示的文字標(biāo)簽返回復(fù)選框上顯示的文字標(biāo)簽public void setLabel(String label)設(shè)置復(fù)選框上顯示的文字標(biāo)簽為設(shè)置復(fù)選框上顯示的文字標(biāo)簽為labelpublic CheckboxGroup getCheckboxGroup()返回復(fù)選框所屬

59、的組返回復(fù)選框所屬的組public void setCheckboxGroup(CheckboxGroup grp)設(shè)置復(fù)選框?qū)儆谠O(shè)置復(fù)選框?qū)儆趃rp組組圖形用戶界面36例例9.69.6:在框架窗口中加入單選框和復(fù)選框。:在框架窗口中加入單選框和復(fù)選框。import java.awt.*;import java.awt.*;import java.awt.event.*;import java.awt.event.*;public class app9_6 extends Framepublic class app9_6 extends Framestatic Frame frm=new Fr

60、ame(static Frame frm=new Frame(復(fù)選框和單選按鈕組選取框復(fù)選框和單選按鈕組選取框););static Checkbox chk1=new Checkbox(static Checkbox chk1=new Checkbox(粗體粗體,true);,true);/設(shè)置設(shè)置chk1chk1選中狀態(tài)選中狀態(tài)static Checkbox chk2=new Checkbox(static Checkbox chk2=new Checkbox(斜體斜體););static Checkbox chk3=new Checkbox(static Checkbox chk3=new

61、 Checkbox(下劃線下劃線););static Checkbox chk_g1=new Checkbox(static Checkbox chk_g1=new Checkbox(紅色紅色););static Checkbox chk_g2=new Checkbox(static Checkbox chk_g2=new Checkbox(綠色綠色,true);,true);/設(shè)置設(shè)置chk_g2chk_g2選中狀態(tài)選中狀態(tài) static Checkbox chk_g3=new Checkbox(static Checkbox chk_g3=new Checkbox(藍(lán)色藍(lán)色););publ

62、ic static void main(String args)public static void main(String args)CheckboxGroup grp=new CheckboxGroup();CheckboxGroup grp=new CheckboxGroup();/創(chuàng)建一個單選按鈕組對象創(chuàng)建一個單選按鈕組對象frm.setLocation(200,150);frm.setLocation(200,150);frm.setSize(250,220);frm.setSize(250,220);frm.setLayout(null);frm.setLayout(null);/

63、取消頁面設(shè)置取消頁面設(shè)置圖形用戶界面37chk1.setBounds(20,30,120,20);chk1.setBounds(20,30,120,20);/設(shè)置復(fù)選框的位置和大小設(shè)置復(fù)選框的位置和大小chk2.setBounds(20,50,120,20);/chk2.setBounds(20,50,120,20);/繼承自繼承自ComponentComponent類類chk3.setBounds(20,70,120,20);chk3.setBounds(20,70,120,20);chk_g1.setBounds(20,90,120,20);chk_g1.setBounds(20,90,1

64、20,20);chk_g2.setBounds(20,110,120,20);chk_g2.setBounds(20,110,120,20);chk_g3.setBounds(20,130,120,20);chk_g3.setBounds(20,130,120,20);chk_g1.setCheckboxGroup(grp);chk_g1.setCheckboxGroup(grp);chk_g2.setCheckboxGroup(grp);chk_g2.setCheckboxGroup(grp);chk_g3.setCheckboxGroup(grp);chk_g3.setCheckboxGr

65、oup(grp);frm.add(chk1);frm.add(chk1);frm.add(chk2);frm.add(chk2);frm.add(chk3);frm.add(chk3);frm.add(chk_g1);frm.add(chk_g1);frm.add(chk_g2);frm.add(chk_g2);frm.add(chk_g3);frm.add(chk_g3);frm.addWindowListener(new WindowClose();frm.addWindowListener(new WindowClose();frm.setVisible(true);frm.setVis

66、ible(true);圖形用戶界面38static class WindowClose extends WindowAdapterstatic class WindowClose extends WindowAdapter public void windowClosing(WindowEvent e)public void windowClosing(WindowEvent e)System.exit(0);System.exit(0);圖形用戶界面39圖形用戶界面的構(gòu)成容器:布局、安排標(biāo)準(zhǔn)組件用戶自定義成分設(shè)計&實現(xiàn)圖形用戶界面的工作創(chuàng)建GUI各組成成分,并安排從屬位置關(guān)系,根據(jù)具體需要對其進(jìn)行排序,構(gòu)成完整外觀。定義GUI各成分對不同事件的響應(yīng),實現(xiàn)與用戶的交互功能。2.窗口的基本原理圖形用戶界面40界面構(gòu)成容器用戶自定義成分v容器是用來組織其他界面成分和元素的單元。一般容器是用來組織其他界面成分和元素的單元。一般一個圖形用戶界面對應(yīng)一個復(fù)雜容器,如窗口。一個圖形用戶界面對應(yīng)一個復(fù)雜容器,如窗口。v標(biāo)準(zhǔn)組件是圖形用戶界面的最小單位,它里面不再標(biāo)準(zhǔn)組件是圖形用戶界面的最小單位,它里

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!