21JAVA_菜单与对话框

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1学习任务学会菜单程序的编写和文件对话框的使用。任务:编写一个带菜单的简单的文本编辑器,能够编辑一个新的文本文件并让用户指定文件名加以保存。也可以打开一个已有的文本文件进行修改。2文件对话框FileDialog用于在打开或保存文件时指定文件。3文件对话框的使用构造方法FileDialog(Frameparent)建立一个打开文件的对话框.FileDialog(Frameparent,Stringtitle)建立一个带标题的打开文件对话框.FileDialog(Frameparent,Stringtitle,intmode)建立一个带标题的文件对话框,用于打开或保存文件。Mode:FileDialog.LOAD打开/FileDialog.SAVE保存4文件对话框的使用主要方法StringgetDirectory()获得文件路径StringgetFile()获得文件名.一般用d.getDirectory()+d.getFile来获得完整的文件名5菜单的创建菜单所涉及的类的层次结构6MenuJMenuBar只能被添加到JFrame中,作为整个菜单树的根JMenu可以添加到JMenuBar或其他JMenu中(实现子菜单功能)。帮助菜单用setHelpMenu()方法添加到菜单条的最右边。JMenuItem菜单项,添加到菜单中。通常注册ActionListener,以响应用户的操作7JMenuBar类的常用方法创建一个菜单栏对象JMenuBar()将指定的菜单加入到菜单栏add(JMenum)设定帮助菜单setHelpMenu(JMenumenu)8JMenu类的常用方法JMenu()创建一个菜单对象JMenu(Stringlabel)创建一个带标签的菜单add(MenuItemmi)添加一个菜单项到菜单remove(intindex)删除指定位置上的菜单项remove(JMenuComponentjmc)删除指定的菜单组件removeAll()删除所有的菜单项insert(JMenuItemmi,intindex)在指定位置插入一菜单项insertSeparator(intindex)在指定位置插入分隔符9JMenuItem类的常用方法创建一个菜单项JMenuItem(Stringlabel)创建一个菜单项,并指定图标JMenuItem(Stringlabel,Iconicon)设置与该菜单项相关的快捷键setAccelerator(KeyStrokekeyStroke)KeyStroke用相关的静态方法getKeyStroke()指定快捷键:staticKeyStrokegetKeyStroke(charkeyChar)staticKeyStrokegetKeyStroke(CharacterkeyChar,intmodifiers)Themodifiers包含以下取值或其组合:java.awt.event.InputEvent.SHIFT_MASK(1)java.awt.event.InputEvent.CTRL_MASK(2)java.awt.event.InputEvent.META_MASK(4)java.awt.event.InputEvent.ALT_MASK(8)10创建菜单的步骤创建一个JMenuBar对象创建各JMenu对象,用add()方法添加到JMenuBar对象中去。创建各JMenuItem对象,并注册相应的ActionListener,然后用add()方法加入到相应的菜单中。用setJMenuBar()方法将菜单加到JFrame对象。11菜单程序举例文本编辑器12importjava.awt.event.*;importjava.awt.*;importjava.io.*;publicclassMenuWindowextendsFrame{publicTextAreatextArea=newTextArea(10,80);//文本编辑区publicStringfileName=“新文件.txt”;//文本文件名publicMenuWindow(){MenuBarmb;MenumenuFile;MenuItemmenuFileNew,menuFileOpen,menuFileSave,menuFileExit;//匿名内部类关闭窗口this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});13mb=newMenuBar();menuFile=newMenu(文件);menuFileNew=newMenuItem(新建);menuFileOpen=newMenuItem(打开);menuFileSave=newMenuItem(保存);menuFileExit=newMenuItem(退出);menuFileSave.addActionListener(newSaveFile());menuFileExit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){System.exit(0);}});menuFile.add(menuFileNew);menuFile.add(menuFileOpen);menuFile.add(menuFileSave);menuFile.add(menuFileExit);mb.add(menuFile);this.setMenuBar(mb);setLayout(newBorderLayout());add(textArea,BorderLayout.CENTER);}14classSaveFileimplementsActionListener//内部类,保存文件{publicvoidactionPerformed(ActionEvente){try{FileDialogd=newFileDialog(MenuWindow.this,保存文件,FileDialog.SAVE);d.setVisible(true);fileName=d.getDirectory()+d.getFile();BufferedWriterbfw=newBufferedWriter(newFileWriter(fileName));bfw.write(textArea.getText(),0,textArea.getText().length());bfw.flush();bfw.close();}catch(Exceptione1){}}}15publicstaticvoidmain(String[]args){MenuWindowmw=newMenuWindow();mw.setTitle(我的文本编辑器);mw.setSize(400,400);mw.setVisible(true);}}16菜单可以实现的其他功能子菜单菜单的快捷方式菜单项分隔线使菜单无效带复选框的菜单项帮助菜单弹出式菜单例217习题用swing图形界面编写一个完整的文本编辑器。

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功