Java语言程序设计讲义第十章.docx

上传人:b****7 文档编号:10850012 上传时间:2023-02-23 格式:DOCX 页数:13 大小:18.39KB
下载 相关 举报
Java语言程序设计讲义第十章.docx_第1页
第1页 / 共13页
Java语言程序设计讲义第十章.docx_第2页
第2页 / 共13页
Java语言程序设计讲义第十章.docx_第3页
第3页 / 共13页
Java语言程序设计讲义第十章.docx_第4页
第4页 / 共13页
Java语言程序设计讲义第十章.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Java语言程序设计讲义第十章.docx

《Java语言程序设计讲义第十章.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计讲义第十章.docx(13页珍藏版)》请在冰豆网上搜索。

Java语言程序设计讲义第十章.docx

Java语言程序设计讲义第十章

第十章图形用户界面

主要内容:

AWT的组成以及使用。

10.1AWT概述

java.awt主要由GUI组件、布局管理器和图像处理三部分组成。

1.GUI构件的组成类

(1)标准构件

●Button,按下就会被激活的用户接口组件,可加标签和图标。

●Checkbox(复选框)和CheckboxGroup(复选框组)

Checkbox类提供两种状态:

一种是选中,另一种是未选中。

CheckboxGroup类用于把一组Checkbox设置为多重互斥型。

●Choice,列表选择。

提供了多项选择功能,选项数通常不多。

●List,列表。

用于清单显示和项目选择,可有一垂直滚动条,通过滚动选择一或多个选项。

●TextField,单行文本输入区

●TextArea,文本输入区

●Label,标签。

在界面上显示文字,可在程序中对其修改。

●Scrollbar,滚动条user-meng(水平和垂直),一般在Panel子类中使用。

●Canvas,画布。

用来在其上绘制图形并创建自己的构件。

(2)菜单构件

●MenuBar,菜单条是包含菜单的容器。

必须与一个框架捆在一起才能起作用,即调用Frame.setMenuBar()。

●Menu,包含菜单项和子菜单,只能加入到菜单容器中。

●MenuItem,菜单系统的“叶子”,通常被添加到一个菜单中。

●CheckboxMenuItem,表示菜单项有选择和不选择两种状态。

(3)容器构件(缺省布局采用BorderLayout方式)

●Panel,面板。

提供一个包含其它组件或面板的容器,通过布局管理器来控制组件的位置,使组件按程序员要求排列。

●Window,窗口。

是容器的子类。

只有依附于框架才能存在。

●Frame,框架。

是窗口的子类,是一个带标题和可变大小边框的顶级窗口。

●Dialog不能改变大小,用于设定应用程序中的一些选项。

●FileDialog,主要用于存取和打开文件的操作。

2.布局管理器

AWT中包含五种布局管理器,FlowLayout类、BorderLayout类、GridLayout类、GridBagLayout类和CardLayout类。

(1)FlowLayout类,流布局管理器

●是Panel和Applet的默认布局管理器,在该布局方式下,组件按顺序一行一行地排列,从左到右,从上到下。

●容器中的各个组件,默认为居中位置,也可设为左对齐或右对齐方式。

●它不控制组件的大小,而是使组件保持它们原有的尺寸。

(2)BorderLayout类,边界布局管理器

它是Window、Frame和Dialog的默认布局管理器,它包含东、西、南、北、中五个区域。

(3)GridLayout类,栅格布局管理器

●每个组件占用一个栅格,从左到右,从上到下。

●可创建指定行数和列数的布局,组件可以添到定义的某个格子中,每个格子的大小都是一样的。

(4)GridBagLayout类,栅格包布局管理器可安排、调整其纵、横方向布局的布局管理器,它不要求每个组件都具有相同尺寸。

(5)CardLayout类,卡片布局管理器。

3.图像处理

●AWT提供各类:

Graphics、Image、Color、Font和FontMetrics、Polygon、Dimension、Rectangle。

●Java语言的图像处理是由java.awt.Image类、java.awt.image包以及java.awt.Graphics类提供支持。

●每个图像由java.awt.Image的对象表示。

●除Image类,java.awt还提供了其他基本图象支持。

如:

Graphics的drawImage()、Toolkit的getImage()和MediaTracker类。

●java.awt.image包提供了与图象处理相关的接口和类,支持创建、处理和跟踪图象。

4.其它AWT类

●Event类:

表示用户行为。

●Toolkit类:

获取图象。

●MediaTracket类:

图象加载情况跟踪。

10.2Componet类的结构

Componet类是一抽象类,用来生成一个通用的AWT构件,其中封装了AWT构件的属性和方法。

publicclassComponentextendsObject{

publicContainergetParent();

publicbooleanisValid();

publicbooleanisVisible();

publicbooleanisShowing();

publicbooleanisEnabled();

publicDimensionsize();

publicsynchronizedvoidshow();

publicshow(booleancond);

publicsynchronizedvoidhide();

publicColorgetForeground();

publicvoidmove(intx,inty);

publicvoidresize(intwidth,intheight);

publicvoidpaint(Graphicsg);

publicvoidupdate(Graphicsg);

publicvoidrepaint();

publicImagecreateImage(ImageProducerproducer);

publicbooleanmouseDown(Eventevt,intx,inty);

publicbooleanmouseDrag(Eventevt,intx,inty);

publicbooleanmouseUp(Eventevt,intx,inty);

publicbooleanmouseMove(Eventevt,intx,inty);

publicbooleanmouseEnter(Eventevt,intx,inty);

publicbooleanmouseExit(Eventevt,intx,inty);

publicbooleankeyDown(Eventevt,intkey);

publicbooleankeyUp(Eventevt,intkey);

publicbooleanaction(Eventevt,Objectwhat);

publicbooleangetFocus(Eventevt,Objectwhat);

publicStringtoString();

……}

10.3AWT构件的使用

1.Button,其类结构如下:

publicclassButtonextendsComponent{

publicButton();

publicButton(Stringlabel);

publicStringgetLabel();

publicvoidsetLabel(Stringlabel);

portectedStringparamString();

……}

例:

Buttonb1=newButton(“Button1”);

add(b1);//将b1加到当前窗口

2.Checkbox和CheckboxGroup

publicclassCheckboxextendsComponent{

publicCheckbox();

publicCheckbox(Stringlabel);

publicCheckbox(Stringlabel,CheckboxGroupgroup,

booleanstate);

publicStringgetLabel();

publicvoidsetLabel(Stringlabel);

publicbooleangetState();

publicvoidsetState(booleanstate);

publicCheckboxGroupgetCheckboxGroup();

publicvoidsetCheckboxGroup(CheckboxGroupg);

portectedStringparamString();

}

publicclassCheckboxGroupextendsObject{

publicCheckboxGroup();

publicCheckboxgetCurrent();

publicsynchronizedvoidsetCurrent(Checkboxt);

publicStringtoString();

}

例:

Checkboxone=newCheckbox(“one”,false);

Checkboxtwo=newCheckbox(“two”,true);

add(one);add(two);

例:

CheckboxGroupcbg=newCheckboxGroup();

Checkboxone=newCheckbox(“one”,cbg,false);

Checkboxtwo=newCheckbox(“two”,cbg,true);

……

add(one);add(two);

……

3.Choice

PublicclassChoiceextendsComponent{

PublicChoice();

PublicintcountItems();

PublicStringgetItem(intindex);

PublicintgetSelectedIndex();

Publicsynchronizedvoidselect(intpos);

Publicvoidselect(Stringstr);

PublicStringparamString();

}

例:

Choicec1=newChoice();

c1.addItem(“one”);

c1.addItem(“two”);

c1.addItem(“three”);

add(c1);

4.List

PublicclassListextendsComponent{

PublicList();

PublicList(introws,booleanmultipleSelections);

PublicintcountItems();

PublicStringgetItem(intindex);

PublicsynchronizedvoidaddItem(Stringitem);

Publicsynchronizedvoidclear();

PublicsynchronizedvoiddelItem(intposition);

PublicsynchronizedvoiddelItems(intstart,intend);

PublicsynchronizedintgetSelectedIndex();

Publicsynchronizedint[]getSelectedIndexs();

PublicsynchronizedStringgetSelectedItem();

PublicbooleanallowsMultipleSelections();

PublicvoidsetMultipleSelections(booleanv);

……

}

例:

Listl1=newList(10,false);

for(inti=0;i<10;i++){

l1.addItem(“item”+i);}

add(“Center”,l1);

5.TextField和TextArea

两者有共同的父类TextComponent.该类提供了一些方法:

publicvoidsetText(Stringt);

publicStringgetText();

publicStringgetSelectText();

publicbooleanisEditable();

publicvoidsetEditable(booleant);

publicvoidselect(intselStart,intselEnd);

publicvoidselectAll();

protectedStringparamSting();

……

PublicclassTextFieldextendsTextComponent{

PublicTextField();

PublicTextField(intcols);

PublicTextField(Stringtext);

PublicTextField(Stringtext,intcols);

PublicchargetEchoChar();

PublicintgetColumns();

PublicStringparamString();

……}

PublicclassTextAreaextendsTextComponent{

PublicTextArea();

PublicTextArea(introws,intcols);

PublicTextArea(Stringtext);

PublicTextArea(Stringtext,introws,intcols);

PublicvoidinsertText(Stringstr,intpos);

PublicvoidreplaceText(Stringstr,intstart,intend);

PublicchargetRows();

PublicintgetColumns();

PublicStringparamString();

……}

例:

TextFieldf=newTextField(“Singleshow”,30);

TextAreat=newTextArea(“moreline”,4,30);

f.setText(“Hello’);Strings=t.getText();

6.Label

publicclassLabelextendsComponent{

publicfinalstaticintCENTER;

publicfinalstaticintLEFT;

publicfinalstaticintRIGHT;

publicLabel();

publicLabel(Stringlabel);

publicLabel(Stringlabel,intalignment);

publicStringgetText();

publicvoidsetText(Stringlabel);

protectedStringparamString();

……}

例:

Labella1=newLabel(“LABEL”);

add(la1);

7.Scrollbar(缺省情况下用BorderLayout)

PublicclassScrollbarextendsComponent{

PublicfinalstaticintHORIZONTAL;

PublicfinalstaticintVERTICAL;

PublicScrollbar();

PublicScrollbar(intorientation);

PublicScrollbar(intorientation,intvalue,intvisible,

intminimum,intmaximum);

publicintgetOrientation();

publicintgetValue();

publicintgetMinimum();

publicintgetmaximum();

publicintgetVisible();

……}

此外,Scrollbar类还定义了4个与滚动速度有关的方法。

getLineIncrement();setLineIncrement(intli);

getPageIncrement();setPageIncrement(intpi);

8.Canvas,通用构件,需要由其子类添加一些具体功能。

PublicclassCanvasextendsComponent{

PublicCanvas();

Publicvoidpaint(Graphicsg);//缺省情况,该方法只将画布区清为构件的背景颜色。

}

9.MenuBar

publicclassMenuBarextendsMenuComponent

implememtsMenuContainer{

publicMenuBar();

publicsynchronizedMenuadd(Menum);

publicsynchronizedvoidremove(intindex);

publicsynchronizedvoidremove(MenuComponentm);

publicintcountMenus();

publicMenugetMenu(inti);

}

10.Menu

publicclassMenuBarextendsMenuItem

implememtsMenuContainer{

publicMenu(Stringlabel);

publicMenu(Stringlabel,booleantearOff);

publicintcountItems();

publicMenuItemgetItem(intindex);

publicsynchronizedMenuItemadd(MenuItemmi);

publicvoidadd(Stringlabel);

publicvoidaddSeparator();

publicsynchronizedremove(intindex);

……}

11.MenuItem

publicclassMenuItemextendsMenuComponent{

publicMenuItem(Stringlabel);

publicStringgetLabel();

publicvoidsetLabel(Stringlabel);

publicbooleanisEnabled();

publicvoidenable();

……}

12.Frame

publicclassFrameextendsWindowimplememtsMenuContainer{

publicFrame();

publicFrame(Stringtitle);

publicvoiddispose();

publicStringgetTitle();

publicvoidremove(MenuComponentm);

publicMenuBargetMenuBar();

publicvoidsetMenuBar(MenuBarmb);

……}

13.Window

publicclassWindowextendsContainer{

publicWindow(Frameparent);

publicsynchronizedvoidpack();

publicsynchronizedvoidshow();

publicsynchronizedvoiddispose();

……}

14.Dialog

publicclassDialogextendsWindow{

publicDialog(Frameparent,booleanmodal);

publicDialog(Frameparent,Stringtitle,booleanmodal);

publicbooleanisModal();

publicStringgetTitle();

publicvoidsetTitle(Stringtitle);

publicbooleanisResizable();

publicvoidsetResizable(booleanresizable);

……}

15.FileDialog

publicclassFileDialogextendsDialog{

publicfinalstaticintLOAD;//文件装载变量

publicfinalstaticintSAVE;//文件保存变量

publicFileDialog(Frameparent,Stringtitle);

publicFileDialog(Frameparent,Stringtitle,intmode);

publicStringgetDirectory();

publicStringgetFile();

publicvoidsetDirectory(Stringdir);

publicvoidsetFile(Stringfile);

publicvoidsetFilenameFilter(FilenameFilterfilter);

……}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1