已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OrientObjectProgramming GUIandSwing 第4章面向对象编程 图形用户界面和Swing类 1 Awt Swing Java从诞生之日起 就提供了AWT类库 专门用于图形用户界面的编程 这些类都存在于java awt包中 AWT AbstractWindowingToolkit 抽象窗口工具包 1 通过JavaAPI包 观察java awt包中的内容 实验 编程显示下图 DisplayGUIAWT java 提示 1 观察Frame类的作用 Frame类的继承关系 构造方法 setVisible方法 show方法 setSize方法 setBounds方法的作用 2 比较setBounds方法和setSize方法的相同点与不同点 比较setVisible方法和show方法的相同点与不同点 importjava awt classDisplayGUIAWT publicstaticvoidmain String args Framef newFrame ThisisaFrame f setBounds 100 100 400 200 f setVisible true 遇到的问题 窗口上的 按钮不起作用如何解决 Swing是一个在AWT基础之上有了很大改进的图形用户界面库 专门用于图形用户界面的编程 这些类都存在于javax swing包中 1 通过JavaAPI包 观察javax swing包中的内容 实验 编程显示下图 DisplayGUISwing java importjavax swing classDisplayGUISwing publicstaticvoidmain String args JFramejf newJFrame ThisisaFrame jf setBounds 100 100 400 200 jf setVisible true 遇到的问题 窗口上的 按钮开始起作用 但应用程序并没有关闭 观察Dos提示符的状态 如何解决观察JFrame类中的setDefaultCloseOperation方法的作用 importjavax swing classDisplayGUISwing publicstaticvoidmain String args JFramejf newJFrame ThisisaFrame jf setBounds 100 100 400 200 jf setSize 400 200 jf setVisible true jf setDefaultCloseOperation JFrame EXIT ON CLOSE 在Java中 顶层窗口称为框架 在AWT库中 对应于框架的类是Frame 在Swing库中 相应的类是JFrame 实验 继续添加程序语句显示以下窗口 问题 看不见添加的控件Swing主要包括组件 Components 定义了所有的图形化界面元素及绘制方法 如 javax swing JLabel类及其中的方法javax swing JTextField类及其中的方法javax swing JButton类及其中的方法等等容器 Containers 可以包含多个基本组件 以便统一操作和管理 如 通过JFrame类中的getContentPane方法返回Container对象注意 组件必须包含在容器中 否则看不见组件布局管理器 Layouts 定义了窗口中组件布局排列的方法 importjavax swing importjava awt classDisplayGUISwing publicstaticvoidmain String args JFramejf newJFrame ThisisaFrame JLabeljl newJLabel 院系名 JTextFieldjtf newJTextField JButtonjb newJButton 提交 jf add jl jf add jtf jf add jb jf setBounds 100 100 400 200 jf setVisible true jf setDefaultCloseOperation JFrame EXIT ON CLOSE 出现的问题只看到最后一次被添加的组件解决方法布局管理器的使用 布局管理器 1 作用 设计和控制组件在容器中的位置和相互关系 2 常用的几种布局管理器 处于java awt包中 FlowLayout以从左到右 从上到下的方式依次排列组件BorderLayout布局方式 将容器分为5个区域 上北下南左西右东和中央 CardLayout布局方式 将每一个组件当作一张卡片 一次仅有一张卡片是可见的GridLayout在网格中布置组件 一个组件占一个网格位置GridBagLayout在网格中布置组件 一个组件可占多个网格位置BoxLayout就像整齐放置的一行或者一列盒子 每个盒子中一个组件 importjavax swing importjava awt classDisplayGUISwing publicstaticvoidmain String args JFramejf newJFrame ThisisaFrame jf setBounds 100 100 400 200 Containerc jf getContentPane JLabeljl newJLabel 院系名 JTextFieldjtf newJTextField 15 JButtonjb newJButton 提交 c add jl c add jtf c add jb FlowLayoutfl newFlowLayout c setLayout fl jf setVisible true jf setDefaultCloseOperation JFrame EXIT ON CLOSE 下节课实验 单击 提交 按钮 能够将文本框的输入信息 写入到指定的文件stuInfo txt文件中 上课实验 编写一个JavaApplication程序MyStudent java 该程序继承school student information包中的StudentInfo类 能够输出下图所示的窗体 课后 完成下图所示的GUI 课后 试完成 1 单击 提交 按钮 会在控制台上显示 你单击了提交按钮 2 单击 提交 按钮 能够将文本框的输入信息 写入到指定的文件stuInfo txt文件中 2 事件 概念事件表达了系统 程序及用户之间的动作和响应 事件产生和处理的流程如下 如 单击按钮 如何通过事件对象表达单击的动作 该对象由谁产生 应用程序是谁 如何处理 1 单击 提交 按钮 会在控制台上显示 你单击了提交按钮 操作步骤 1 用户单击了 提交 按钮 该按钮就是事件源 jb addActionListener aa 2 单击的动作谁来表达 由实现ActionListener的类来表达观察java awt event包中的接口ActionListener 及其作用 importjavax swing importjava awt importjava awt event classDisplayGUISwingimplementsActionListener publicstaticvoidmain String args JFramejf newJFrame ThisisaFrame jf setBounds 100 100 400 200 Containerc jf getContentPane JLabeljl newJLabel 院系名 JTextFieldjtf newJTextField 15 JButtonjb newJButton 提交 c add jl c add jtf c add jb FlowLayoutfl newFlowLayout c setLayout fl DisplayGUISwingaa newDisplayGUISwing jb addActionListener aa jf setVisible true jf setDefaultCloseOperation JFrame EXIT ON CLOSE publicvoidactionPerformed ActionEvente System out println 你单击了提交按钮 2 单击 提交 按钮 能够将文本框的输入信息 写入到指定的文件stuInfo txt文件中 如何读取文本输入框中的内容 查看JTextField类中的方法 publicvoidactionPerformed ActionEvente Strings if jtf getText trim length 0 s jtf getText r n try BufferedWriterbw newBufferedWriter newFileWriter stuinfo txt true bw write s bw newLine jtf setText bw close catch FileNotFoundExceptione1 System out println 该文件不存在 catch IOExceptione2 else System out println 输入不能为空 jtf requestFocus 3 内部类的使用 定义在一个类的内部的类 称为嵌套类或内部类 该类可被定义为private 见实例 importjavax swing importjava awt importjava awt event importjava io classDisplayGUISwing staticJTextFieldjtf staticRandomAccessFileraf publicstaticvoidmain String args JFramejf newJFrame ThisisaFrame jf setBounds 100 100 400 200 Containerc jf getContentPane JLabeljl newJLabel 院系名 jtf newJTextField 15 JButtonjb newJButton 提交 c add jl c add jtf c add jb FlowLayoutfl newFlowLayout c setLayout fl SubmitButtonaa newSubmitButton jb addActionListener aa jf setVisible true jf setDefaultCloseOperation JFrame EXIT ON CLOSE privatestaticclassSubmitButtonimplementsActionListener publicvoidactionPerformed ActionEvente Strings if jtf getText trim length 0 s jtf getText r n try BufferedWriterbw newBufferedWriter newFileWriter stuinfo txt true bw write s bw newLine jtf setText jtf requestFocus bw close catch FileNotFoundExceptione1 System out println 该文件不存在 catch IOExceptione2 else System out println 输入不能为空 jtf requestFocus 实验 继续制作出如下图所示的界面 1 单击 输出 按钮 可以将文件中的内容输出到DOS控制台 2 若文本框中没有输入 会在窗口上作相应的显示 privatestaticclassOutputButtonimplementsActionListener publicvoidactionPerformed ActionEvente try BufferedReaderbr newBufferedReader newFileReader stuinfo txt Stringline br readLine while line null System out println line line br readLine jtf setText jtf requestFocus br close catch FileNotFoundExceptione1 System out println 该文件不存在 catch IOExceptione2 通过事件监听器接收和处理事件 事件监听器用来实时监听事件的产生 接收事件对象 并对事件做出响应事件监听器是一个类的实例 这个类实现了一个特殊的接口 称为监听者接口事件类和处理事件的监听者接口都定义在java awt event包中AWT共有11个监听器类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年及未来5年市场数据中国工程胶粘剂行业发展前景预测及投资战略数据分析研究报告
- 2025年及未来5年市场数据中国硫酸钡行业市场调研分析及投资战略规划报告
- 2025贵州一禾劳务派遣服务有限责任公司招聘司法社工人员笔试历年参考题库附带答案详解
- 2025福建厦门市天下恒在文化发展有限公司招聘2人笔试历年参考题库附带答案详解
- 2025湖北宜昌市企事业单位将引进660余名高层次和急需紧缺人才笔试历年参考题库附带答案详解
- 2025吉林成飞新材料有限公司招聘18人笔试历年参考题库附带答案详解
- 2026年宜春职业技术学院单招职业倾向性考试必刷测试卷带答案解析
- 2026年四川化工职业技术学院单招职业技能考试题库附答案解析
- 2026年云南经贸外事职业学院单招职业倾向性考试题库附答案解析
- 2026年亳州职业技术学院单招综合素质考试必刷测试卷带答案解析
- 故意杀人上诉状范文两篇
- 小工具批量处理邻区脚本实用操作
- 三年级科学下册《谁在水中溶解得多》实验报告单
- 10KV开关柜验收报告
- 高中数学 数列 4.4数学归纳法第1课时
- 矿产资源与国家安全【备课精讲精研+能力拓展提升】 高二地理下学期 课件(湘教版2019选择性必修3)
- GB/T 7735-2004钢管涡流探伤检验方法
- GB/T 21566-2008危险品爆炸品摩擦感度试验方法
- 医学导论-课件
- 如何科学减肥课件
- 口腔颌面外科学 拔牙器械及用法
评论
0/150
提交评论