java基础及应用教程(下)ppt

上传人:tia****nde 文档编号:70059258 上传时间:2019-01-15 格式:PPT 页数:228 大小:4.66MB
返回 下载 相关 举报
java基础及应用教程(下)ppt_第1页
第1页 / 共228页
java基础及应用教程(下)ppt_第2页
第2页 / 共228页
java基础及应用教程(下)ppt_第3页
第3页 / 共228页
java基础及应用教程(下)ppt_第4页
第4页 / 共228页
java基础及应用教程(下)ppt_第5页
第5页 / 共228页
点击查看更多>>
资源描述

《java基础及应用教程(下)ppt》由会员分享,可在线阅读,更多相关《java基础及应用教程(下)ppt(228页珍藏版)》请在金锄头文库上搜索。

1、Java基础及应用,教程,第1章 Java入门 第2章 Java的数据类型 第3章 类和对象 第4章 String类 第5章 运算符和控制语句 第6章 容器和布局 第7章 Applet类 第8章 Component组件类 第9章 菜单和对话框 第10章 绘图方法和鼠标键盘事件 第11章 线程和多媒体技术 第12章 文件 第13章 数据库,第9章,菜单和对话框,菜单框架程序,一个基本的菜单框架程序包含MenuBar、Menu、MenuItem三个类。 MenuBar 类的对象称为菜单条。调用Frame类的setMenuBar方法可将菜单条绑定在Frame框架上。 Menu类的对象是菜单条上的一个

2、下拉菜单。 MenuItem类的对象是下拉菜单中的菜单项,或菜单命令。 程序smp91.java说明菜单框架的创建。由于原来程序语句较多,这里作了一些简化。,程序smp91.java代码,import java.awt.*;import java.awt.event.*; public class smp91 extends Frame implements ActionListener 1 MenuBar mnub;Menu mnu1,mnu2,mnu3,mnu31; 2 MenuItem itm1,itm2,itm3,itm4,itm5,itm6,itm71,itm72; TextArea

3、 txt1,txt2; smp91() setVisible(true);setBackground(Color.cyan); 3 setLayout(new FlowLayout();setBounds(10,10,100,60); txt1=new TextArea(12,30);txt2=new TextArea(12,30); 4 mnub=new MenuBar();setMenuBar(mnub); 5 mnu1=new Menu(“文件“);mnu2=new Menu(“编辑“); 6 mnu3=new Menu(“插入“);mnu31=new Menu(“文本框“);,程序sm

4、p91.java代码续一,7 itm1=new MenuItem(“新文件“); itm2=new MenuItem(“打开“); 8 itm3=new MenuItem(“退出“,new MenuShortcut(KeyEvent.VK_E); 9 itm4=new MenuItem(“复制“); itm5=new MenuItem(“剪切“); 10 itm6=new MenuItem(“粘贴“); itm71=new MenuItem(“横排“); itm72=new MenuItem(“竖排“); 12 mnub.add(mnu1);mnub.add(mnu2); 13 mnub.ad

5、d(mnu3);mnu3.add(mnu31); 14 mnu1.add(itm1);mnu1.addSeparator(); 15 mnu1.add(itm2);mnu1.addSeparator();mnu1.add(itm3);,程序smp91.java代码续二,16 mnu2.add(itm4);mnu2.addSeparator(); 17 mnu2.add(itm5);mnu2.addSeparator();mnu2.add(itm6); 18 mnu31.add(itm71);mnu31.addSeparator(); mnu31.add(itm72);add(txt1);add

6、(txt2);pack(); itm1.addActionListener(this); itm2.addActionListener(this); itm3.addActionListener(this); itm4.addActionListener(this); itm5.addActionListener(this); itm6.addActionListener(this); 22 itm71.addActionListener(this); itm72.addActionListener(this);,程序smp91.java代码续三,23 public void actionPe

7、rformed(ActionEvent e) 24 if (e.getSource()=itm1) 25 txt1.setText(“您单击了“+itm1.getLabel(); else if (e.getSource()=itm2) txt2.setText(“您单击了“+itm2.getLabel(); 26 else if (e.getSource()=itm3)System.exit(0); public static void main(String args) smp91 smp=new smp91();,程序smp91.java运行1,菜单条中有“文件”、“编辑”和“插入”三个

8、菜单。 单击“文件”弹出一个包含 “新文件”、“打开”和“退出”三个菜单项的下拉菜单。 单击“打开”命令,便在右边文本区显示“您单击了打开”。 单击“退出”命令,便终止程序运行。,程序smp91.java运行2,单击插入菜单,将鼠标移到弹出的下拉菜单中的“文本框”菜单,便弹出一个包含“横排”和“竖排”两个菜单项的子菜单。“文本框”称为级联菜单。,程序smp91.java分析,语句1、2声明一个MenuBar类的对象、四个Menu类的对象和八个MenuItem类的对象。语句3设置窗口的位置和大小。 语句4创建MenuBar类的对象并通过setMenuBar方法将它绑定在Frame窗口。 语句5、

9、6创建四个Menu类的对象。语句7至11创建八个MenuItem类的对象。其中语句8设置Ctrl+E为“退出”菜单项的快捷键。 语句12、13将mnu1、mnu2、mnu3三个菜单添加到菜单条上,将mnu31菜单添加在mnu3菜单上。 语句14至18将八个菜单项分别添加到mnu1、mnu2、mnu3和mnu31四个菜单上。并通过addSeparator方法添加隔离条将各菜单项隔开。 语句19至22为八个菜单项添加监听接口。单击菜单项时便调用语句23的actionPerformed方法。经语句24至26判断事件源后执行相应的命令。如果单击“退出”命令,或按下Ctrl+E键,语句26的条件菜单成立

10、,终止程序运行。,复制、剪切和粘贴操作,程序smp91.java只是一个菜单框架。一个实用的菜单不但需要添加更多菜单和菜单项,还要赋予每个菜单项功能。现在只有itm3菜单项具有退出功能,其他菜单项都还没有功能。 下面说明怎样实现复制、剪切和粘贴各菜单项的功能。 通常的做法是:先将要复制的文字存入Windows的剪贴板,当需要时再将它们从剪贴板取出,粘贴到其他文件中。这是一个数据的传输过程。 为了实现上述功能,先在程序smp91.java开头引入包: import java.awt.datatransfer.*; 称为数据传输包。再在程序smp91.java中创建对象: Clipboard cl

11、p=getToolkit().getSystemClipboard(); Clipboard称为剪贴板类,clp是剪贴板类的对象。,复制,还要在程序smp91.java的语句26之后添加以下代码: else if (e.getSource()=itm4) 1 String str=txt1.getSelectedText(); 2 StringSelection txt=new StringSelection(str); 3 clp.setContents(txt,null); 先在文本区txt1中写下要复制的文字,然后选取它们,单击“复制”菜单项后执行上述语句。 语句1通过TextArea类

12、的getSelectedText方法获得选取的文字,存入字符串变量str。 语句2创建一个StringSelection类的对象txt。该类在smpjava.awt.datatransfer包中,已在程序开头引入。 语句3通过Clipboard类的setContents方法将 txt赋予剪贴板clp,这便是复制操作。,剪切,在上述复制语句之后添加以下4、5、6三个语句,便可实现“剪切”功能, : else if (e.getSource()=itm5) 1 String str=txt1.getSelectedText(); 2 StringSelection txt=new StringSe

13、lection(str); 3 clp.setContents(txt,null); 4 int start=txt1.getSelectionStart(); 5 int end=txt1.getSelectionEnd(); 6 txt1.replaceRange(“,start,end); 先在文本区txt1中写下要剪切的文字,然后选取它们,单击“剪切”菜单项后执行上述语句。 语句1、2、3已在前面说明。语句4、5分别将txt1中的首、末字符的位置存入int型变量start和end。 语句6删除txt1中从start到end的字符,这便是剪切操作。,粘贴,在上述剪切语句之后再添加以下代码

14、,便可实现“粘贴”功能: else if (e.getSource()=itm6) 1 Transferable cnt=clp.getContents(this); 2 DataFlavor flv=DataFlavor.stringFlavor; 3 if(cnt.isDataFlavorSupported(flv) try 4 String str=(String)cnt.getTransferData(flv); 5 txt2.append(str); catch(Exception ee) 粘贴需在复制或剪切操作之后进行,所以在执行上述语句之前,先要执行前面介绍的复制或剪切操作语句。

15、,粘贴操作代码分析,语句1中的Transferable类和语句2中的DataFlavor类都在smpjava.awt.datatransfer包中,已在程序开头引入该包。 语句1通过Clipboard类的getContents 方法将当前剪贴板的内容赋予Transferable类型变量cnt。 进行数据传输需要被传递的数据格式和系统要求的数据格式匹配。stringFlavor是DataFlavor类的一个常量,代表Java Unicode String 类的数据格式。语句2将它存入变量flv。 语句3通过isDataFlavorSupported方法判断变量cnt的数据格式和flv的数据格式是

16、否一致,如果一致便执行语句4、5。 语句4 访问getTransferData方法将变量cnt中的数据按照flv格式返回变量str,并通过(String)强制进行数据类型转换。 语句5将str添加在txt2文本区中,便完成了粘贴操作。语句4需要在trycatch结构中执行。,Dialog对话框类,Dialog类的对象是一个对话框。 对话框是一个有标题和边框的窗口。可通过它和客户进行交流,向客户传递和获取客户的信息。 对话框必须有一个窗体作为的宿主,例如可用Frame窗口作为对话框的宿主。当宿主窗口最小化时,便自动隐藏对话框,当宿主窗口还原时,又重新展现对话框。 对话框的默认布局是BorderLayout。 有非模态和模态两种对话框,非模态是默认方式。当打开一个模态对话框后,用户便不能操作它的上层窗口,只有关闭了模态对话框,才能操作上层窗口。非模态对话框则不受限制。 程序smp92.java说明了对话框的应用。,程序smp92.java代码,import java.awt.*;import java

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号