java速成第10-11章.ppt_第1页
java速成第10-11章.ppt_第2页
java速成第10-11章.ppt_第3页
java速成第10-11章.ppt_第4页
java速成第10-11章.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、作业讲解:上机作业A:ActionEvent练习,一个窗口包含三个按钮和一个文本行,三个按钮的颜色分别为红,绿,蓝,单击任意一个按钮,当用户点击某个按钮,文本行的背景色改为相应颜色 参考:点击一下后窗口变成红色的例子,作业讲解:上机作业2,【实训目的】 练习行为事件处理ActionEvent 【实训步骤】 1、创建一个窗口,包含两个按钮和一个标签,标签初始值为0,如图10-12所示; 2、实现以下功能:在“累加”按钮上单击一次,则标签的值加1; 3、实现以下功能:在“清空”按钮上单击一次,则标签的值恢复为0。 提示:2、3步使用label对象的getText()方法和setText()方法 提

2、示:arg0.getSource()方法能判断出事件源是哪个按钮,1事件类的关系,AWT中组件和可触发的事件类,2事件监听器接口及其中方法,。更多监听器参考表11-12,import java.awt.*;import java.awt.event.*; /TextEvent:让登录窗口的密码不能超过六位,否则自动清零 public class Login implements TextListener static Frame fra;static Button but1,but2; static TextField txt1,txt2; public static void main(St

3、ring args) fra=new Frame(登录窗口); FlowLayout layout=new FlowLayout(); fra.setBounds(0, 0, 280, 150); fra.setLayout(layout); but1=new Button(ok);but2=new Button(cancel); txt1=new TextField(20);txt2=new TextField(20); Label lab1=new Label(username); Label lab2=new Label(password); fra.add(lab1);fra.add(

4、txt1);fra.add(lab2); fra.add(txt2);fra.add(but1);fra.add(but2); txt2.addTextListener(new Login();fra.setVisible(true); public void textValueChanged(TextEvent arg0) if (txt2.getText().length()6)txt2.setText(); ,【任务10-6】登录框密码处理,上机作业1:处理TextEvent事件,参考任务10-6,实现以下程序: 窗口中有两个文本,向上面的文本输入内容时,下面文本行同时显示输入文本,例子

5、10-B:处理WindowEvent事件,问题提出,根据接口性质,一个类如果实现某个监听器接口,如XXXListener,必须实现该接口中的所有抽象方法 例如WindowListener包含7个方法,即使只需要处理一个windowClosing()方法,也必须实现其他的六个方法,将每个方法体设置为空 很麻烦!,解决办法:3 事件适配器,原理: Java提供一个简便的方法,为包含多个事件处理方法的监听器接口提供了一个抽象类,成为适配器类(XXXAdapter),每个适配器类都是一个实现了接口XXXListener的类,用空方法体实现了XXXListener的每个抽象方法,用WindowListe

6、ner接口对应的事件监听器改进例子10-B,静态内部类 也可以改为外部非静态类,上机作业(2):窗口适配器,在【教材任务10-6】的基础上(详细代码在备注中), 使用WindowAdapter让窗口的右上角“”按钮被点击后可以关闭窗口,11.4 绘图,Java提供的绘图类Graphics,可以绘制直线、圆、圆弧等。 1 Graphics类 例如有Graphics类对象g g.drawLine(20, 80, 20, 160); g.drawString(painting, 70, 100); 2 在组件上绘图 java.awt.Component类中申明了绘图方法public void pai

7、nt(Graphics g) Paint方法不是用户调用而是系统自动调用的 如果一个类需要在组件上绘图,则该类必须申明继承某个java的组件类,并且覆盖paint()方法,否则不能自动执行paint()方法 覆盖了父类paint()方法后,可以调用repaint()方法刷新绘图,教材任务10-7-代码演示,要求:在窗口上按下鼠标并拖动到另外一个点松开后可以画一个矩形 并在左上角用一个Label显示该矩形的位置,格式如下: (左上角横坐标,左上角纵坐标) -(右下角横坐标,右下角纵坐标),上机作业3:鼠标事件,在任务10-7的基础上,多增加几个按钮。 分别为 圆、直线、矩形 在单击对应的按钮后,

8、鼠标在窗口上画的图形即为对应的图形。,第十二章 Swing图形界面,12.1Swing组件概述,在Java早期版本中,窗体、按钮等组件被列入java.awt包中。 但是AWT包隐藏着一个很严重的问题,虽然它是遵循着java“一次编译,随处运用”的理念,然而它在图形组件的绘制方法却不能做到随处运用, 因此用AWT包编写出来的程序有可能在不同的操作平台上显示不同的效果,,12.1Swing组件概述,在1998年推出JDK1.2版本时,javax.swing包被列入java的基础类库中。 在这里给出一个AWT与swing包的比较: (1)新版的swing包可能与旧版不兼容。 (2)swing包是建立

9、在AWT包的基础上,所以完全舍弃AWT包也不太可能。 (3)AWT包的运行速度比swing慢。,导入相关的包,import javax.swing.* ; Swing组件要使用AWT基础结构,包括AWT事件模型。还需导入两个包 import java.awt.*; import java.awt.event.*;,12.1Swing组件概述,Swing组件与AWT最大不同: 在被实现时不包含本地代码,可以不受硬件平台的限制,具有更多的功能 Swing组件比AWT的优势: Swing的标签和按钮不仅可以显示文本,还可以显示图标,形状可以任意 Swing是AWT的扩展,用于建立更复杂,跨平台性更好

10、的图形界面,java建议使用Swing组件代替AWT组件,JFrame类,JFrame是提供给java应用程序用来放置图形用户界面的一个容器。Swing包中的JFrame类与我们讲解的AWT包中的Frame类都与创建窗口有关,JFrame类是从Frame类派生的。,12.2窗口,基于Swing组件的 图形界面,采用JFrame框架作为容器 JFrame的构造方法和成员方法,u,一个空白窗口,面板c的作用:设置布局管理器 添加组件 区别:AWT是直接添加到窗口的,12.3标签 JLabel类,Label组件只能显示文字 但JLabel组件允许添加图像,而且当鼠标的光标停留在标签位置时,会显示一段

11、文字提示。,setToolTipText(String s) 继承自JComponent类 JLabel bl=new JLabel(“Hello”); bl.setToolTipText(“This is a hello label”);,12.4 按钮 JButton类,添加按钮图标 ImageIcon ico=new ImageIcon(“IconJavaCup.gif”); JButton bt=new JButton(“OK”,ico);,文本框,Swing中文字输入有两个类,分别是JTextField类和JTextArea类,其中JTextField定义一个可以输入单行文字的矩形区

12、域; JTextArea定义一个可以输入多行文字内容的矩形区域。 另外,JPasswordField是JTextField的子类,用来做密码输入,任务11-1,与AWT的不同之处,Swing总结,1 Swing组件一般前面加上一个大写的J Frame-JFrame Button-JButton 2通过JFrame的getContentPane()方法得到得到Container对象,是窗口的面板,Swing组件是添加到该面板中,设置布局管理器也是通过它 Container c=getContentPane(); c.setLayout(new FlowLayout(100,100,10); c.add(lab

温馨提示

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

评论

0/150

提交评论