Java程序设计 第10讲 图形用户界面(三)_第1页
Java程序设计 第10讲 图形用户界面(三)_第2页
Java程序设计 第10讲 图形用户界面(三)_第3页
Java程序设计 第10讲 图形用户界面(三)_第4页
Java程序设计 第10讲 图形用户界面(三)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第10讲图形用户界面 三 10 7使用单行文本框TextField10 8使用多行文本框TextArea10 9使用布局管理器 2 10 7单行文本框TextField 单行文本框是一个单行显示区域 可以从键盘上接收用户输入 用户将数据输入文本框 然后按回车键就可以在程序中使用该数据 TextFieldtf1 tf2 tf3 tf4 tf1 newTextField tf2 newTextField 20 tf3 newTextField Hello tf4 newTextField Hello 30 add tf1 add tf2 add tf3 add tf4 3 10 7单行文本框TextField的构造函数 TextField 创建文本对象 长度为一个字符 TextField intx 创建文本对象 长度为X字符 TextField Strings 创建文本对象 初始字符为STextField Strings intx 创建文本对象 初始字符S 长度X个字符 4 10 7单行文本框TextField的常用方法 setText Strings 设置文本 getText 获取文本框中的文本 setEchoChar charc 设置文本的回显示字符 setEditable boolean 指定文本的可编辑性 默认为可编辑 5 单行文本框的构造函数及常用方法的使用 importjava applet Applet importjava awt publicclassSampleextendsApplet privateTextFieldtextField1 textField2 publicvoidinit textField1 newTextField 在这里输入用户名 textField2 newTextField 15 textField2 setEchoChar add newLabel 用户名 add textField1 add newLabel 密码 add textField2 publicvoidpaint Graphicsg Strings s 用户名 textField1 getText s s 密码 textField2 getText showStatus s 6 程序运行结果 7 10 7AWT事件类型 低级事件ComponentEvent 组件事件 组件尺寸的变化 移动 ContainerEvent 容器事件 组件增加 移动 WindowEvent 窗口事件 关闭窗口 窗口闭合 图标化 FocusEvent 焦点事件 焦点的获得和丢失 KeyEvent 键盘事件 键按下 释放 MouseEvent 鼠标事件 鼠标单击 移动 高级事件 语义事件 ActionEvent 动作事件 按钮按下 TextField中按Enter键 AdjustmentEvent 调节事件 在滚动条上移动滑块以调节数值 ItemEvent 项目事件 选择项目 不选择 项目改变 TextEvent 文本事件 TextArea中文本对象改变 8 10 7AWT事件处理模型 组件 事件发生者 触发一个相应类型的事件此事件由相应类型的Listener 事件监听者 接收并处理 9 10 7单行文本框上的ActionEvent事件 importjava applet Applet importjava awt importjava awt event publicclassSampleextendsAppletimplementsActionListener privateTextFieldtext1 text2 publicvoidinit text1 newTextField 10 text2 newTextField 10 add text1 add text2 text1 addActionListener this publicvoidactionPerformed ActionEvente publicvoidactionPerformed ActionEvente If e getSource text1 text getText equals boy text2 setText 男孩 Else text2 setText 女孩 10 10 8多行文本框TextArea TextArea可以显示多行多列的文本 add newTextArea Hello 5 40 11 10 8多行文本框TextArea的构造函数 TextArea 创建文本区对象 TextArea Strings 创建文本区对象 初始化字符串为s TextArea Strings intx inty 初始化字符s 文本框行数为x 列数为y 12 10 8多行文本框TextArea的常用方法 setText Strings 设置文本 getText 获取文本 setEditable boolean 指定多行文本框的可编辑性 默认为可编辑 13 多行文本框的构造函数及常用方法的使用 其中一个多行文本框不允许用户进行编辑 而另一个则允许用户输入信息 importjava applet Applet importjava awt publicclassSampleextendsApplet privateTextAreatextArea1 textArea2 publicvoidinit textArea1 newTextArea Read onlyText 10 20 textArea2 newTextArea 10 20 textArea1 setEditable false add textArea1 add textArea2 14 程序运行结果 15 10 7多行文本框上的TextEvent事件 文本区上的TextEvent事件 文本区中内容的改写 获得监视器 addTextListener 监视器 接口 TextListener接口中方法 textValueChanged TextEvente 16 10 9布局 Layout Java awt包中共定义了5种布局管理器类 它们分别是FlowLayout BorderLayout CardLayout GridLayout和GridBagLayout 每个布局管理器类对应一种布局策略 当一个容器选定一种布局策略时 它应该创建该策略对应的布局管理器类的对象 并将此对象设置为自己的布局管理器 17 10 9布局 Layout 没有指明布局管理器 则panel与applet都使用缺省的FlowLayout布局策略 没有布局管理器的容器 其中的对象会互相覆盖 遮挡 影响使用 所以必须为每个容器设置一个合适的布局管理器 容器设置布局使用方法 setLayout 布局对象 18 1 FlowLayout布局 流式布局管理器 FlowLayout 是默认的布局管理器 组件按照加入的先后顺序从左向右排列 一行排满之后就到下一行继续从左至右排列 在每个组件的上边 下边 左边 右边都留有小的空间 默认为5个象素 19 1 FlowLayout的构造函数 FlowLayout FlowLayout intalign FlowLayout intalign inthorz intvert 20 1 FlowLayout的使用方法 创建完FlowLayout对象后 必须使用setLayout 方法进行设定 才能有效 21 1 FlowLayout的使用 importjava applet Applet importjava awt publicclassSampleextendsApplet privateTextFieldtextField1 textField2 publicvoidinit FlowLayoutfL newFlowLayout FlowLayout LEFT setLayout fL textField1 newTextField 在这里输入用户名 textField2 newTextField 15 textField2 setEchoChar add newLabel 用户名 add textField1 add newLabel 密码 add textField2 22 程序运行结果 23 2 BorderLayout布局 边界布局管理器 BorderLayout 也是一种简单的布局策略 它把容器内的空间简单地划分为东 西 南 北 中5个区域 每加入一个组件都应该指明把这个组件加在哪个区域中 BorderLayout只能指定5个区域位置 如果容器中需要加入超过5个组件 就必须使用容器的嵌套或改用其他的布局策略 24 2 BorderLayout的构造函数 BorderLayout BorderLayout inthorz intvert 25 2 BorderLayout的使用方法 创建完BorderLayout对象后 必须使用setLayout 方法进行设定 才能有效 26 2 BorderLayout的使用 importjava applet Applet importjava awt publicclassSampleextendsApplet privateButtonbSouth bNorth bEast bWest bCenter publicvoidinit setLayout newBorderLayout bSouth newButton 我在南边 bNorth newButton 我在北边 bEast newButton 我在东边 bWest newButton 我在西边 bCenter newButton 我在中心 add bNorth BorderLayout NORTH add bSouth BorderLayout SOUTH add bEast BorderLayout EAST add bWest BorderLayout WEST add bCenter BorderLayout CENTER 27 程序运行结果 28 3 GridLayout布局 网格布局管理器 GridLayout 的基本布局策略是把容器的空间划分成若干行乘若干列的网格区域 组件就位于这些划分出来的小格中 GridLayout比较灵活 划分多少网格由程序自由控制 而且组件定位也比较精确 29 3 GridLayout的构造函数 GridLayout GridLayout intnumRows intnumColums GridLayout intnumRows intnumColums inthorz intvert 30 3 GridLayout的使用方法 创建完GridLayout对象后 必须使用setLayout 方法进行设定 才能有效 调用容器的方法add 将组件加入容器 组件填入容器的顺序将按照第一行第一个 第一行第二个 第一行最后一个 第二行第一个 最后一行最后一个进行 每个网格中都必须填入组件 如果希望某个网格为空白 可以为它加入一个空的标签 例如 add newLabel 31 3 GridLayout的使用 importjava awt importjava applet Applet publicclassButtonGridextendsApplet publicvoidinit setLayout newGridLayout 3 2 add newButton 1 add newButton 2 add newButton 3 add newButton 4 add newButton 5 add newButton 6 32 程序运行结果 33 4 Null布局 通常第一次用前面这些布置管理器的初学者 都会有点不习惯 因为大部分人的习惯都是直接在applet 用 x y 坐标来绘制 而Null管理器就是近似 x y 坐标的一种布置管理器 这种布置管理器是有缺点的 因它不能妥善的处理resize事件 所以 这种管理器不适合大量运用 只能偶尔在例如用random 产生 x y 对象位置的视觉效果上 34 4 Null布局的常用方法 Null布局的使用 1 setLayout null 2 向空布局的容器中添加组件的步骤 add component component setBounds intx inty intwidth intheight 35 4 Null布局的常用方法 3 getSize width获取applet的宽4 getSize height获取applet的高 36 4 Null布局的使用 importjava applet Applet importjava awt publicclassNullDemoextendsApplet privateTextFieldtextField1 textField2 privateLabellabel1 label2 intw h x y publicvoidinit setLayout null textField1 newTextField 在这里输入用户名 textField2 newTextField 15 textField2 setEchoChar label1 newLabel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论