已阅读5页,还剩198页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章Java图形用户界面 6 1图形用户界面概述和java awt包简介6 2字体和颜色的设置 图形绘制和图像显示6 3Graphics2D画图简介 6 1图形用户界面概述和java awt包简介 图形用户界面GUI GraphicsUserInterface 就是应用程序提供给用户操作的图形界面 包括窗口 菜单 按钮 工具栏和其他各种界面元素 在Java里有两个包为GUI设计提供了丰富的功能 awt abstractwindowstoolkit 包和swing包 awt是javaGUI的早期版本 组件种类有限 只提供基本的GUI设计类 swing包是SUN公司对早期版本的改进版本 它提供了更加丰富的组件和功能 swing会用到awt中许多知识 学习awt包是学习GUI编程的基础 java awt包中的一些常用类 GUI组件分类 在AWT的概念中 窗口系统中所显示的各种对象都统称为 GUI组件 Component 组件有基本组件和容器组件之分 基本组件是不能包含其它组件的组件 是构成图形用户界面的基本元素 容器组件是用来包含其他组件的 故称之为容器 container 用户可以把各种组件放入到容器中 也可以把容器放到另一个容器中 从而形成具有层次的组件结构 组件类 Component 容器类 Container 基本组件类 面板类panel 窗体类windows Applet小程序类 Frame框架类 Dialog对话框类 无边框 有边框 6 2字体和颜色的设置 图形绘制和图像显示 6 2 1设置字体 一 创建Font类的对象 Font Stringname intstyle intsize 使用java awt包中的Font类的构造函数创建字体类的对象 例 Fontfont1 newFont 楷体 GB2312 Font BOLD Font ITALIC 50 二 设置字体 publicvoidsetFont Fontfont 设置字体publicFontgetFont 返回当前字体对象 字体的创建和设置应在显示前进行 否则以系统默认字体显示 例1 编写一个简单的设置字体的程序 将字体设置为宋体 黑体 大小为30个像素 并在小程序窗口输出 TestFont javaimportjava applet Applet importjava awt Graphics importjava awt Font publicclassTestFontextendsApplet publicvoidpaint Graphicsg Fontfont1 newFont 宋体 Font BOLD 30 g setFont font1 Strings 中国北京 g drawString s 10 30 Graphics drawstring Stringstr intx inty 其中的坐标x和y指的是整个文本块显示时左下角的位置 page1 htmlJava小程序 运行后结果如下 思考 运行后结果如下 6 2 2设置颜色 利用java awt包中的Color类可以创建颜色类的对象 一 创建color对象 publicColor intr intg intb publicColor intr intg intb inta 第一种是用r g b值创建一种不透明的颜色 第二种是用r g b值创建一种透明的颜色 a表示透明度 参数取值为0 255 publicColor floatr floatg floatb publicColor floatr floatg floatb floata 第一种是用r g b值创建一种不透明的颜色 第二种是用r g b值创建一种透明的颜色 a表示透明度 参数取值为0 0f 1 0f 二 Color类的颜色常量 Color类共有13种颜色常量 使用的时候可以查询API文档 如 Color RED表示红色 三 设置颜色 publicvoidsetColor Colorc 设置颜色publicColorgetColor 返回当前颜色对象publicintgetRed 得到当前颜色对象的red值publicintgetGreen 得到颜色对象的green值publicintgetBlue 得到颜色对象的blue值publicintgetAlpha 得到颜色对象的alpha值 例2 编写一个颜色设置的程序 TestColor javaimportjava applet Applet importjava awt publicclassTestColorextendsApplet publicvoidinit setBackground Color black publicvoidpaint Graphicsg Colorc1 newColor 255 0 0 Colorc2 newColor 255 0 0 128 Colorc3 Color pink Fontfont1 newFont 宋体 Font BOLD Font ITALIC 15 Strings 中国北京 g setColor c1 g setFont font1 g drawString 红色 s 10 20 g setColor c2 g drawString 红色 s 10 40 g setColor c3 g drawString 粉色 s 10 60 page2 htmlJava小程序 运行后结果如下 6 2 3字符数组和字节数组的显示 以下三个方法是Graphics类 该类在java awt包中 的方法 1 绘制字符串 publicvoiddrawString Stringstr intx inty 坐标点 x y 与要绘制的字符串Str左下角对应 2 绘制字符数组 publicvoiddrawChars Charchars intoffset intnumber intx inty 参数offset是数组的起始下标 参数number是要绘制的元素个数 坐标点 x y 含义同上 3 绘制字节数组 publicvoiddrawBytes Charbytes intoffset intnumber intx inty 含义同字符数组 例 编写程序 显示字符数组和字节数组 DrawCharByte javaimportjava applet importjava awt publicclassDrawCharByteextendsApplet publicvoidinit setBackground Color black publicvoidpaint Graphicsg Strings 中国北京 g setColor Color red g drawString s 20 40 charch newchar A B C D E g setColor Color white g drawChars ch 0 5 80 40 bytebyt newbyte 65 66 67 68 69 g setColor Color yellow g drawBytes byt 0 3 82 42 page3 javaJava小程序 运行后结果如下 6 2 4java的图形绘制 预备知识 Java图形界面窗口的坐标原点 0 0 在窗口左上角 水平向右为x的正方向 垂直向下为y的正方向 坐标值单位是像素 小程序窗口的坐标系同上 通过getSize 方法可得到小程序窗口界面的宽和高 小程序窗口宽w intw getSize width 小程序窗口高h inth getSize height 1 画直线 publicvoiddrawLine intx1 inty1 intx2 inty2 功能 在点 x1 y1 和 x2 y2 之间画直线 2 画矩形 1 画矩形 publicvoiddrawRect intx inty intwidth intheight 功能 以给定坐标 x y 为左上角坐标 画宽度为width 高度为height的矩形 2 用当前设置的颜色画填充矩形 publicvoidfillRect intx inty intwidth intheight 3 画圆角矩形 publicvoiddrawRoundRect intx inty intwidth intheight intarcWidth intarcHeight publicvoidfillRoundRect intx inty intwidth intheight intarcWidth intarcHeight 前4个参数的意义同上 第5 6个参数arcWidth和arcHeight分别为水平方向圆弧总宽度 垂直方向圆弧总宽度 注 若圆弧的宽度和高度分别等于矩形的宽度和高度 则绘制的是椭圆 4 画3D矩形 publicvoiddraw3DRect intx inty intwidth intheight booleanbool publicvoidfill3DRect intx inty intwidth intheight booleanbool 功能 绘制一个有立体感的矩形 当bool为true时 矩形为突出的 当bool为false时 矩形为凹陷的 3 画椭圆和圆弧 1 画椭圆 publicvoiddrawOval intx inty intwidth intheight publicvoidfillOval intx inty intwidth intheight 功能 x y是椭圆外切矩形左上角的坐标 参数width和height是椭圆外切矩形的宽和高 上面的两个方法分别画椭圆和画填充的椭圆 2 画圆弧 publicvoiddrawArc intx inty intwidth intheight intstartAngle intarcAngle publicvoidfillArc intx inty intwidth intheight intstartAngle intarcAngle 功能 前4个参数同画椭圆的参数 后两个参数含义startAngle是弧的起始角度 arcAngle表示从起始角度算起转多少度 逆时针为正 顺时针为负 他们的单位都是度 取值为0到360度之间 若超过则取360的余数 例4 编写程序演示画填充的椭圆和填充的扇形 DrawOval javaimportjava applet importjava awt publicclassDrawOvalextendsApplet publicvoidpaint Graphicsg g setColor Color BLUE g drawRect 20 20 100 60 g setColor Color RED g fillOval 20 20 100 60 g setColor Color BLACK g drawOval 140 20 100 60 g fillArc 140 20 100 60 0 60 page4 htmlJava小程序 运行后结果如下 6 2 5图像的显示 一 声明和获取一个图像类的对象 1 定义一个图像类的对象 Imagepic 2 获取一个图像的对象 这里只介绍小程序中获取图像的方法 publicImagegetImage URLurl Stringname 该方法是java applet Applet类提供的方法 用于从文件加载图像到内存 以便显示图像 name 图像名称 格式可以是gif jpg和png等 URL 图像存放目录 URL getDocumentBase 图像存放在HTML文档目录下或其子目录下时 使用该方法指明图像路径 getCodeBase 图像存放在程序代码所在目录下或其子目录下时 使用该方法指明图像路径 3 得到指定图像的高度及宽度 intgetHeight ImageObserverobserver intgetWidth ImageObserverobserver 参数observer是加载图像时的图像观察器 一般是在本类显示 其值为this 如Imagepic getImage getCodeBase a jpg intw h w pic getWidth this h pic getHeight this 二 显示图像的方法 1 以图像本身的大小显示图像 publicbooleandrawImage Imageimg intx inty ImageObserverobserver 说明 参数x y是被显示的图像在窗口左上角的图标 2 放大或缩小显示图像 publicbooleandrawImage Imageimg intx inty intwidth intheight ImageObserverobserver 说明 这里的width和height表示图像在窗口显示的尺寸 例5 编写程序 演示按原图大小显示图像 缩小为原图一半显示图像 importjava applet importjava awt publicclassShowImageextendsApplet publicvoidpaint Graphicsg Imagepic getImage getCodeBase 计算 gif intw pic getWidth this inth pic getHeight this intd 5 g drawImage pic 0 0 this 原图大小显示g drawImage pic w d 0 w 2 h 2 this 缩小为原图宽高一半并显示 page5 htmlJava小程序 运行后结果如下 6 3Graphics2D画图简介 Java类库中的java awt包中还提供了另外一个类Graphics2D供画图显示使用 它是Graphics类的子类 与Graphics的区别 Graphic2D有更强大的图形处理功能 它把要绘制的图形当作对象来处理 通过方法draw 和fill 绘制和填充图形 方法的参数都是图形对象 如直线 Line2D 矩形 Rectangle2D 和椭圆 Ellipse2D 等 上述的创建图形对象的类都存在于java awt geom中 因此若要使用Graphics2D画图 需在程序前面引入java awt geom包中相应的类 通常用paint Graphicsg 绘图时 要通过以下语句把父类对象强制转换为其子类Graphics2D的对象g2d进行画图显示 Graphics2Dg2d Graphics2D g 例6用Graphics2D画一条直线 importjava applet importjava awt importjava awt geom publicclassTestGraphics2DextendsApplet publicvoidpaint Graphicsg Graphics2Dg2d Graphics2D g BasicStrokebstroke newBasicStroke 3 0f g2d setStroke bstroke Line2Dline newLine2D Double 20 0 20 0 32 0 20 0 g2d draw line 调用类Line2D的构造函数 参数为Double型 page6 htmlJava小程序 运行后结果如下 第6章Java图形用户界面 6 4标签 按钮 文本区与动作事件6 5Java应用程序的图形界面 6 4标签 按钮 文本区与动作事件 回顾 GUI标准组件 容器组件 基本控制组件 6 4 1标签 继承自组件类 用来显示一行文本信息 标签类没有事件响应 一 创建标签类对象 1 publicLabel 构造一个没有任何显示文本的标签 2 publicLabel Stringstr 构造一个指定显示文本的标签 3 publicLabel Stringstr intalignment 如 LabelL1 newLabel 请输入一个整数 Label RIGHT 二 将一个标签对象放置到容器中 使用add 方法 如 add L1 三 标签类的其它常用方法 publicStringgetText 得到标签文本 publicvoidsetText Stringstr 为标签设置一个只读文本信息 publicvoidsetAlignment intAlignment 设置标签的对齐方式 publicvoidsetBackground Colorc 设置标签的背景颜色 publicvoidsetForeground Colorc 设置标签的文字颜色 例7在小程序中创建和添加标签 并设置 标签2 的背景色和文本颜色 importjava awt importjava applet publicclassUseLabelextendsApplet publicvoidinit setBackground Color lightGray LabelL1 L2 L1 newLabel L1 setText 标签1 L2 newLabel 标签2 Label RIGHT L2 setBackground Color pink L2 setForeground Color blue add L1 add L2 page7 htmlJava小程序 运行结果如下 6 4 2按钮 继承自组件类 是能通过鼠标单击触发特定动作的组件 一 创建按钮对象 1 publicButton 创建一个没有名称的按钮 2 publicButton Stringlabel 创建一个有名称的按钮 例Buttonbtn newButton 画圆 二 将按钮对象添加到容器中 使用add 方法 例add btn 三 处理按钮的动作事件 Java中的事件处理由专门的类完成 所有事件处理的类和接口都在java awt event包中 当用户单击按钮后 将引发动作事件 ActionEvent ActionEvent类自动创建一个动作事件对象e 处理按钮动作事件是通过在程序中实现ActionListener接口中的抽象方法publicvoidactionPerformed ActionEvente 来完成的 由于ActionEven类和ActionListener接口都在java awt event包中 因此 定义一个按钮需要经过下述过程 1 在程序最前面引入事件响应包中的类 importjava awt event 2 程序要实现ActionListener接口 publicclass类名extends父类implementsActionListener publicvoidactionPerformed ActionEvente 事件处理代码repaint 需要更新页面时需要此语句 3 为按钮对象接上一个事件监听器 publicvoidaddActionListener ActionListenerlistener 这里this表示动作事件响应的程序自身 事件监听者 只有把按钮单击事件注册给事件监听者后 程序才能响应该动作事件 4 按钮事件的处理 当用户单击按钮后 将执行actionPerform 方法 单击按钮将引发动作事件 java系统将自动创建ActionEvent类的一个对象e 通过该类的方法getActionCommand 或getSource 可判断事件源 即单击了哪个按钮 if e getSource btn 如果单击了按钮btn 执行此处的代码 或if e getActionCommand equals 画圆 如果单击按钮上的文本等于 画圆 即单击了按钮btn 执行此处的代码 如 getActionCommand 返回动作命令名称 默认的动作命令名称为所单击按钮的标签文本 例8在小程序中定义两个按钮 画图 和 清除 单击 画图 在小程序窗口中画一个蓝色的填充圆 单击 清除 则清除所画的填充圆 UseButton javaimportjava applet importjava awt importjava awt event publicclassUseButtonextendsAppletimplementsActionListener Buttonbtn1 btn2 intk 0 publicvoidinit btn1 newButton 画圆 btn1 addActionListener this add btn1 btn2 newButton 清除 btn2 addActionListener this add btn2 引入事件响应包中的类 实现actionListener接口 publicvoidactionPerformed ActionEvente if e getActionCommand equals 画圆 k 1 if e getSource btn2 k 2 repaint publicvoidpaint Graphicsg if k 1 g setColor Color blue g fillOval 60 30 80 80 if k 2 按钮事件的处理 刷新 当执行repaint 方法后 系统自动调用paint 方法 运行结果见演示 6 4 3文本框 Component类 TextComponent类 TextField类 TextArea类 这里 TextField类的具体实例是一个单行的文本框 TextArea类的具体实例是一个多行的文本域 也称为文本区 文本框可以接收从键盘输入的信息 并能响应ActionEvent事件 即响应文本框中的回车事件 按Enter键 一 创建文本框对象 publicTextField 创建默认长度的文本框publicTextField intcolumns 创建能容纳columes个字符的空文本框publicTextField Strings 创建含有字符串s的TextField对象 二 将文本框添加到容器中 使用add 方法 三 处理文本框回车事件 与按钮事件处理类似 当用户在文本框输入数据 回车后 将引发一个ActionEvent事件 执行actionPerformed ActionEvente 方法 因此应将回车后要执行的程序代码放到该方法的方法体中 四 TextField类的一些常用方法 publicStringgetText 得到文本域中的字符串publicStringgetSelectText 得到文本域中被选择的字符子串publicvoidsetText Strings 设置文本域中的字符串publicvoidsetEchoChar charc 设置文本域的回显字符 publicvoidsetEditable booleanb 设置文本域的可编辑状态 当b为false时 文本框不允许修改 例9编写文本框回车事件的响应程序 在下面的小程序中 创建一个标签和一个文本框 在文本框中分别输入图片名称 1 jpg 2 jpg 5 jpg 回车后可显示该图片 图片放到小程序所在的目录 UseTextField javaimportjava applet importjava awt importjava awt event publicclassUseTextFieldextendsAppletimplementsActionListener LabelL1 TextFieldtf Stringstr Imagepic null publicvoidinit L1 newLabel 请输入图片名称 然后回车 tf newTextField 8 tf addActionListener this add L1 add tf 引入事件响应包中的类 实现actionListener接口 给文本框接上事件监听器 publicvoidpaint Graphicsg pic getImage getCodeBase str g drawImage pic 20 40 200 200 this publicvoidactionPerformed ActionEvente if e getSource tf str tf getText repaint 动作事件的处理 UseTextField htmlJava小程序 运行结果见演示 6 4 4文本区 用于创建多行文本 方法与文本框类似 具体见API文档 6 5Java应用程序的图形界面 6 5 1容器和基本控制组件 基本控制组件 容器组件 标签 按钮和文本组件等 其中窗体类包括框架类 Frame 对话框类 Dialog 和文件对话框类 FileDialog 面板类 Panel 窗体类 window 一个组件需要添加到容器中才能看到 一个容器本身也可以添加到另一个容器中 实现容器的嵌套 6 5 2应用程序图形界面的实现 应用程序 Application 要具有图形界面的窗口 需要继承自框架类 或先编写框架类的子类 并创建该类对象 1 创建窗口 用java awt包中的框架类或它的子类创建的一个对象就是一个窗口 它是一个容器 窗口中可以添加如标签 按钮 菜单等组件 publicFrame 创建一个没有窗口名字的窗口PublicFrame Stringtitle 创建一个名字为title的窗口 窗口默认是不可见的 必须通过setVisible booleanb 设置窗口可见 逻辑值b为true时 2 设置窗口的一些方法 publicvoidsetSize intwidth intheight 设置窗口宽width 高height 单位是像素 publicvoidsetVisible booleanb 设置窗口是否可见 默认为不可见 b为true时 窗口可见 publicvoidsetResizable booleanb 设置窗口是否可调整 默认大小可调整 b为false时 窗口大小不可调整 publicvoidsetTitle Stringtitle 设置窗口的标题名为titlepublicvoidsetBounds intx inty intwidth intheight 设置窗口在屏幕上的显示位置及宽和高 publicvoidpack 根据窗口中的布局和添加组件的大小以紧凑形式显示窗口 3 处理窗口关闭事件 当一个窗口打开 关闭 最小化时都会引发窗口事件 WindowsEvent 窗口事件类在java awt event包中 实现窗口事件监听的接口是WindowListener接口 该接口包含7个方法 分别响应不同的接口事件 publicvoidwindowActivated WindowEvente publicvoidwindowClosed WindowEvente publicvoidwindowClosing WindowEvente publicvoidwindowDeactivated WindowEvente publicvoidwindowDeiconified WindowEvente publicvoidwindowIconified WindowEvente publicvoidwindowOpened WindowEvente 实际编程时 只需要编写windowClosing WindowEvente 方法的代码处理窗口关闭事件 即当单击窗口右上角的 时 关闭窗口 其他方法只需加上空语句体即可 窗口关闭事件处理的代码如下 publicvoidwindowClosing WindowEvente dispose System exit 0 释放该窗口和其中所有组件所占的资源 终止当前运行的Java虚拟机 退出Java运行系统 Java提供了WindowAdapter类来处理窗口事件 该类已经实现了上述的7个方法 即给7个方法加上了空语句体 若处理窗口关闭事件 只需要重写windowClosing 方法的方法体即可 此时通过内部类或匿名类来实现 可以减少程序代码 例10对应用程序的图形界面和窗口关闭事件进行演示说明 importjava awt importjava awt event publicclassUseFrame publicstaticvoidmain Stringargs MyFramew newMyFrame java intdata 12 23 34 45 56 67 78 Stringstr 下标 t元素值 n for inti 0 i data length i str i t data i n w text setText str 设置窗口对象w的文本区的文本为str classMyFrameextendsFrame TextAreatext publicMyFrame Strings super s 调用父类构造函数 设置窗口标题名称addWindowListener newWindowAdapter publicvoidwindowClosing WindowEvente dispose System exit 0 关闭窗口setVisible true setBackground Color lightGray Toolkittk getToolkit 得到一个Toolkit对象Imageimg tk getImage a jpg setIconImage img setLayout newGridLayout 1 1 text newTextArea add text setBounds 200 10 300 200 pack 应用程序下图形用户界面获取图像的方法 设置布局为一行一列 设置在屏幕上的显示位置 以紧凑方式显示窗口 运行结果见演示 第6章Java图形用户界面 6 5单选框 复选框 列表和下拉列表 6 5单选框 复选框 列表和下拉列表 6 5 1单选框和复选框 Checkbox和Radiobox继承自Component类 是一种基本控制组件 使用时需要添加到容器中 一 复选框 Checkbox 1 创建复选框的构造函数 publicCheckbox 创建没有标签的复选框publicCheckbox Stringlabel 创建带有文本标签的复选框publicCheckbox Stringlabel booleanstate 创建带有文本标签label的复选框 并设置初始状态是选中 true 还是未选中 false Checkbox对象默认是未选中 二 将复选框放到容器中 使用add 方法 三 处理复选框选中事件 选择或取消选择一个复选框会引发选项事件 ItemEvent ItemEvent类存在于java awt event包中 选项事件的处理是通过ItemListener来完成的 1 在程序最前面引入事件响应包中的类 importjava awt event 2 程序要实现ItemListener接口 publicclass类名extends父类implementsItemListener publicvoiditemStateChanged ItemEvente 事件处理代码 选项事件处理方法 3 为Checkbox对象接上一个事件监听器 publicvoidaddItemListener ItemListenerlistener 4 选项事件的处理 当用户选择某复选框后 将引发动作事件 执行itemStateChanged 方法 java系统将自动创建ItemEvent类的一个对象e 通过该类的方法getItemSelectable 可判断事件源 即单击了哪个复选框 通常为this 四 常用方法 publicvoidsetState booleanstate 设置复选框的选中状态publicbooleangetState 得到复选框的选中状态 选中为true 否则为false publicStringgetLabel 得到复选框的标签文本 例11编写程序 要求将一个文本框中的字符串通过点击复选框变为黑体或斜体 UseCheckbox javaimportjava applet importjava awt importjava awt event publicclassUseCheckboxextendsAppletimplementsItemListener TextFieldtf Checkboxc1 c2 publicvoidinit setSize 200 100 setLayout newFlowLayout FlowLayout CENTER 30 10 组件以居中形式对齐 组件间左右间隔为30pix 上下间隔为10pix tf newTextField Java程序设计 20 tf setFont newFont 楷体 Font PLAIN 15 add tf c1 newCheckbox 黑体 c1 addItemListener this add c1 c2 newCheckbox 斜体 c2 addItemListener this add c2 publicvoiditemStateChanged ItemEvente intvar c1 c1 getState Font BOLD Font PLAIN intvar c2 c2 getState Font ITALIC Font PLAIN tf setFont newFont 楷体 var c1 var c2 15 创建一个长度为20 含有给定字符串的文本框对象 UseCheckbox hmlJava小程序 运行结果为 二 单选框 Radiobox 单选框是通过把一组Checkbox对象归并到一个选框组 CheckboxGroup类 对象来实现的 注意 在创建单选框之前 应先创建选项组CheckboxGroup类的对象 类CheckboxGroup不是Componet的子类 它是Object的直接子类 因此 选框组不能对ItemEvent事件做出响应 但其中的每个Checkbox对象都可以响应ItemEvent事件 其处理方式与复选框类似 1 创建单选框 先定义一个选框组CheckboxGroup类的对象 CheckboxGroupgroup newCheckboxGroup 然后使用Checkbox类构造函数 publicCheckbox Stringlabel booleanstate CheckboxGroup 创建单选框 二 将单选框放到容器中 使用add 方法 三 处理单选框选中事件 单选框事件处理实际上是对该选框组的每个Checkbox对象进行处理 其处理方式与复选框的ItemEvent事件处理类似 判断事件源的方法 方法一 ItemEvent类的方法getItemSelectable 方法二 CheckboxGroup类的方法getSelectedCheckbox 四 常用方法 getState 返回单选框选中状态setState booleanb 设置单选框选中状态StringgetLabel 得到单选框的标签文本 例12编写一个程序 有4个单选框 分别对应4幅图片的名称1 jpg 4 jpg 图片存放到程序代码所在目录中 要求当点击图片名称前的单选框时 显示对应的图片 UseCheckboxGroup javaimportjava applet importjava awt importjava awt event publicclassUseCheckboxGroupextendsAppletimplementsItemListener CheckboxGroupcg newCheckboxGroup Checkboxck newCheckbox 4 Image img newImage 4 intk 0 publicvoidinit setSize 400 200 for inti 0 i img length i img i getImage getCodeBase i 1 jpg for inti 0 i ck length i ck i newCheckbox 图片 i 1 cg false ck i addItemListener this add ck i ck 0 setState true publicvoiditemStateChanged ItemEvente for inti 0 i img length i if cg getSelectedCheckbox ck i if e getItemSelectable ck i k i repaint publicvoidpaint Graphicsg g drawImage img k 50 50 this UseCheckboxGroup htmlJava小程序 运行结果为 一 下拉列表 Choice 6 6 2列表和下拉列表 下拉列表类Choice在java awt中 它继承自组件类Component 1 创建Choice对象并添加选项 Choicechoice newchoice 创建下拉列表对象choice publicvoidadd Stringitem 或publicvoidadditem Stringitem 向下拉列表添加选项 2 将Choice对象添加到容器中 使用方法add 实现 3 下拉列表的事件处理 同复选框的事件处理 4 Choice类的其它常用方法 publicintgetSelectedIndex 得到被选项的索引值 publicvoidgetSelectedItem 得到被选项的字符串 publicvoidinsert Stringitem intindex 在指定索引值index处插入一个选项itempublicvoidselect intpos 选择指定索引值的选项publicvoidselect Stringstr 选择指定选项的字符串选项publicvoidremove intposition 删除指定索引值的选项publicvoidremove Stringitem 删除指定选项的字符串选项publicvoidremoveAll 删除所有选项 例13编写小程序 选中下拉列表中所列出的单词 则在标签上显示对应的中文释义 UseChoice javaimportjava applet importjava awt importjava awt event publicclassUseChoiceextendsAppletimplementsItemListener Choicechoice newChoice Labellabel newLabel publicvoidinit setSize 300 100 choice add car choice addItem hand choice addItem head choice addItem warm add choice choice addItemListener this choice select 2 add label publicvoiditemStateChanged ItemEvente if choice getSelectedIndex 0 label setText n 汽车 小汽车 车辆 if choice getSelectedItem hand label setText n 手 支配 指针 手艺 if choice getSelectedItem head label setText n 头脑 领袖 最前面的部分 顶点 if choice getSelectedItem warm label setText adj 暖和的 激烈的 多情的 兴奋的 选择索引值为2的选项 运行结果为 UseChoice htmlJava小程序 二 列表 List 列表类List在java awt中 它继承自组件类Component 用来列表显示一系列选项 用户可以从中选择一项或多项 1 创建List对象添加选项 List List introws rows表示一次显示几个选项 若选项总数大于rows 显示窗口出现滚动条 List introws booleanmultipleModel multipleModel值为false时 表示该List为单选项 否则允许多项选择 添加选项 publicvoidadd Stringitem 添加选项到列表的末尾 publicvoidadd Stringitem intindex 添加选项到列表中指定的索引位置index 例 创建一个列表对象piclist 一次显示2个选项 单选 并添加3个选项 Listpiclist newlist 2 false piclist add 图片1 piclist add 图片2 piclist add 图片3 2 将List对象添加到容器中 使用方法add 实现 3 列表对象的事件处理 List对象的事件 ItemEvent事件 单击事件 ActionEvent事件 双击事件 单击列表中的一个或多个选项 将引发ItemEvent事件 ItemEvent事件处理是通过ItemListener接口中的itemStateChanged ItemEvente 方法完成的 调用ItemEvent类的方法getItemSelectable 可获取事件源 用addItemListener ItemListenerlistener 给列表对象接上监听器 温故知新 双击列表中的一个或多个选项 将引发ActionEvent事件 ActionEvent事件处理是通过ActionListener接口中的actionPerformed ActionEvente 方法完成的 调用ActionEvent类的方法getSource 可获取事件源 用addActionListener ActionListenerlistener 给列表对象接上监听器 4 其它常用方法 publicStringgetItem intindex 返回给定索引值index的选项的字符串 publicString getItems 返回列表中所有选项的字符串 返回值类型是字符串数组 publicintgetSelectedIndex 返回一个选中的选项的索引值publicint getSelectedIndexes 返回多个选中选项的索引值 返回值类型是整型数组publicvoidselect intindex 设置索引值为index的选项为选中 例14下面小程序演示了列表的创建和它的事件响应 程序中的列表对象piclist有5个选项 对应5幅图片的显示 图片名称为1 jpg 5 jpg 存放到小程序所在的目录中 UseList javaimportjava applet importjava awt importjava awt event publicclassUseListextendsAppletimplementsItemListener Listpiclist Imagepic newImage 5 intk publi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临沂二模地理试卷及答案
- 广誉远中药面试题及答案
- 美食行业活动策划
- 公务员面试木桶面试题及答案
- 公务员面试辽源面试题及答案
- 恒力集团招聘面试题及答案
- 海南航空校招题库及答案
- 公务员考试睡眠试题及答案
- 公务员考试实施试题及答案
- 2026年桂林生命与健康职业技术学院单招综合素质考试题库附答案
- 2025广东深圳市龙华区招聘社区网格员72人考试笔试参考题库附答案解析
- 服装店店长岗位职责详述
- 工业废水处理工岗位标准化技术规程
- 2026年南京科技职业学院单招职业倾向性测试题库及答案1套
- 私宴接待流程标准化管理
- 2025年农商银行面试题目及答案
- (14)普通高中音乐课程标准日常修订版(2017年版2025年修订)
- 《Web前端开发(JavaScript)》技工中职全套教学课件
- 2025安徽芜湖市人才发展集团代招聘芜湖市投资控股集团有限公司下属子企业招聘工作人员8人考试笔试参考题库附答案解析
- 中级育婴员岗位技能提升培训计划-Training-Plan-for-Enhancing-Job-Skills-of-Intermediate-Childcare-Worker
- 跨境电商税务合规及操作指南
评论
0/150
提交评论