Java 2 —面向对象程序设计 Chapter 17

上传人:E**** 文档编号:89388634 上传时间:2019-05-24 格式:PPT 页数:29 大小:825.50KB
返回 下载 相关 举报
Java 2 —面向对象程序设计 Chapter 17_第1页
第1页 / 共29页
Java 2 —面向对象程序设计 Chapter 17_第2页
第2页 / 共29页
Java 2 —面向对象程序设计 Chapter 17_第3页
第3页 / 共29页
Java 2 —面向对象程序设计 Chapter 17_第4页
第4页 / 共29页
Java 2 —面向对象程序设计 Chapter 17_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Java 2 —面向对象程序设计 Chapter 17》由会员分享,可在线阅读,更多相关《Java 2 —面向对象程序设计 Chapter 17(29页珍藏版)》请在金锄头文库上搜索。

1、Chapter 17,菜单、菜单栏 与 滚动条,选择窗体,选择窗体(list)可用来一次显示多个选项,Java以List类来创建它。选择窗体的使用方式相当简单,先用List类的add() 将选项加到窗体内,再利用程序来控制窗体的显示方式,窗体里的第一个选项索引值为0,注意:,例,07 public static void main(String args) 08 09 frm.setLayout(new FlowLayout(FlowLayout.CENTER,10,25); 10 frm.setTitle(“List class“); 11 for(int i=0;i=10;i+) / 利用

2、for循环加入选项 12 lst.add(“List Item “+i); 13 lst.select(2); / 选取索引值为2的选项 14 frm.setSize(200,150); 15 frm.add(lst); 16 frm.setBackground(Color.yellow); 17 frm.setVisible(true); 18 System.out.println(“lst.getRows()= “+lst.getRows(); 19 System.out.println(“lst.getItemCount()= “+lst.getItemCount(); 20 ,程序执行

3、结果,13 lst.select(2); / 选取索引值为2的选项,lst.getRows()= 4 lst.getItemCount()= 11,getItemCount() 取得lst对象里选项的总数,lst对象的选项分别为List Item 0List Item10,故getItemCount()响应11,默认值为4,选择窗体的事件处理,18 lst.addItemListener(frm); / 设置frm为lst的聆听者 20 21 public void itemStateChanged(ItemEvent e) / 事件处理的程序代码 22 33 ,当选取选择窗体内的选项时,It

4、emEvent事件会被触发。ItemEvent事件已在16-4节介绍过了,可以利用addItemListener()把事件聆听者向List类的对象注册,再将事件处理的程序代码编写在itemStateChanged() 里,如:,下拉菜单,下拉菜单(choice)与选择窗体类似,都是提供了多个选项可供选取。但与选择窗体不同的是,下拉菜单只能选择单一的项目,不能复选,且下拉菜单一次只能显示一个选项,用户必须按下菜单旁的“下拉按钮” 来选择其他的项目,下拉菜单的事件处理,选取下拉菜单内的选项时一样会触发ItemEvent事件,因此利用addItemListener()注册事件聆听者,再将事件处理的程

5、序代码编写在itemStateChanged() 里,便可处理下拉菜单所触发的事件了,19 chc.addItemListener(frm); / 设置frm为chc的事件聆听者 21 22 public void itemStateChanged(ItemEvent e) 23 34 ,如:,菜单栏,在Java中,一个完整的菜单栏是由三种菜单栏类所创建:“MenuBar”、“Menu”与“MenuItem”,06 static MenuBar mb=new MenuBar(); / 创建MenuBar对象 07 static Menu menu1=new Menu(“Color“); 08

6、static Menu menu2=new Menu(“Exit“); 09 static MenuItem mi1=new MenuItem(“Yellow“); 10 static MenuItem mi2=new MenuItem(“Orange“); 11 static MenuItem mi3=new MenuItem(“Pink“); 12 static MenuItem mi4=new MenuItem(“Close window“);,例:创建菜单栏,要创建完整的菜单栏,必须分别创建MenuBar、Menu与MenuItem对象,然后先用add() 把Menu对象加到MenuB

7、ar对象中,再把MenuItem对象加到Menu对象中,创建Menu对象,创建MenuItem对象,例:创建菜单栏,14 public static void main(String args) 15 16 mb.add(menu1); / 将menu1加入mb中 17 mb.add(menu2); / 将menu2加入mb中 18 menu1.add(mi1); / 将mi1加入menu1中 19 menu1.add(mi2); / 将mi2加入menu1中 20 menu1.add(mi3); / 将mi3加入menu1中 21 menu2.add(mi4); / 将mi4加入menu2中

8、 22 frm.setSize(200,150); 23 frm.setMenuBar(mb); / 设置frm的菜单栏为mb 24 frm.setVisible(true); 25 ,06 static MenuBar mb=new MenuBar(); / 创建MenuBar对象,08 static Menu menu2=new Menu(“Exit“);,17 mb.add(menu2);,06 static MenuBar mb=new MenuBar(); / 创建MenuBar对象,06 static MenuBar mb=new MenuBar(); / 创建MenuBar对象,

9、08 static Menu menu2=new Menu(“Exit“);,12 static MenuItem mi4=new MenuItem(“Close window“);,17 mb.add(menu2);,21 menu2.add(mi4);,菜单栏的事件处理,当选择了某个MenuItem类的对象时便触发了ActionEvent事件,所以只要把要处理的事情编写在actionPerformed() 里即可,34 public void actionPerformed(ActionEvent e) / 事件处理的程序代码 35 36 MenuItem mi=(MenuItem) e.

10、getSource(); / 取得触发事件的对象 37 if(mi=mi1) / mi1触发事件 38 lab.setFont(new Font(“Dialog“,Font.PLAIN,24); 39 else if(mi=mi2) / mi2触发事件 40 lab.setFont(new Font(“Dialog“,Font.BOLD,24); 41 else if(mi=mi3) / mi3触发事件 42 lab.setFont(new Font(“Dialog“,Font.ITALIC,24); 43 else if(mi=mi4) / mi4触发事件 44 frm.dispose();

11、 / 关闭窗口 45 ,滚动条,滚动条包含:两个滚动条箭头(位于滚动条两端)、一个滚动条盒(用来拖曳滚动条)以及滚动条列(用来放置滚动条盒),设置滚动条的最小值为20,最大值为180,但因滚动条盒的大小占掉了40,所以这个滚动条只能返回20140之间的数值,什么涵意?,滚动条的事件处理,Scrollbar类并不是搭配ActionListener或ItemListener接口使用,它使用的是AdjustmentListener接口。此接口里只定义了一个,void adjustmentValueChanged(adjustmentEvent e),例:,在窗口中配置了两个Label对象与一个垂直的

12、滚动条,当滚动条移动时,滚动条的数值会显示在窗口的下方,且窗口上方“Hello Java“字体的大小也会随着滚动条数值的不同而改变,16 scr.addAdjustmentListener(frm); / 以frm当成scr的聆听者 17 scr.setValues(20,4,12,40); / 设置scr的相关数值 25 public void adjustmentValueChanged(AdjustmentEvent e) 26 27 int size=scr.getValue(); / 取得scr的数值 28 lab1.setFont(new Font(“Dialog“,Font.PL

13、AIN,size);/ 设置字体样式 29 lab2.setText(“size=“+size); / 显示字体大小 30 ,对话框,对话框功能类似于框架(frame),它在屏幕上弹出新的窗口,作为临时窗口用来显示或提示用户输入信息的弹出式窗口,实现用户与系统的交互操作。 其目的的让用户将注意力集中于所要求的输入上。,对话框与窗口的区别:对话框依赖于其他窗口 对话框有“主控”与“非主控”之分,主控对话框(modal dialog box),是指用户一定要处理完主控对话框的事情之后,才能回到它的拥有者窗口里继续运行 非主控对话框(non-modal dialog box)可以响应对话框以外的事件

14、,Dialog类主要提供了两个构造方法,其中布尔型的参数若为true则创建非主控对话框 ,允许向其他窗口输入事件;若为false则创建主控对话框,Dialog(Frame f, String s) :创建一个具有标题,初始不可见的,属于某个窗口(Frame)的对话框 Dialog(Frame f, String s, boolean m):创建一个带标题的对话框,文件对话框,它是Dialog 类的子类,它创建的对象称为文件对话框。文件对话框是一个打开文件和保存文件的对话框窗口,它也必须依附一个窗口对象,FileDialog 类的主要方法如下,mode的取值是fileDialog.LOAD或者f

15、ileDialog.SAVE,决定对话是打开文件或者保存文件,FileDialog(Frame f, String s , int mode),public String getDirectory():获取当前文件对话框中显示的文件的所属目录 public String getFile() :获取当前文件对话框中显示的文件的字符串表示。如果不存在,则显示null,范例,在窗口中配置了一个TextArea组件与一个Button组件。当Button按下时,打开文件对话框,选择好目录与文件之后,按下“打开”按钮,在窗口内的TxexArea组件便会显示出所选择文件的内容,程序代码,01 / app17_9, FileDialog类的使用 02 import java.awt.*; 03 import java.awt.event.*; 04 import java.io.*; 05 public class app17_9 extends Frame implements

展开阅读全文
相关资源
相关搜索

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

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