(98)Menu简单文本编辑器实现功能:文件打开,保存,退出
2017-07-27 19:06
591 查看
Menu中既可以添加Menu,也可以添加MenuItem
注意menu:可添加在menubar中或者menu中(添加在menu中形成子菜单)
menuItem:添加在menue中
menubar:添加在Frame中
需求:建立如下窗体,并实现菜单的功能
MenuItem:类中有监听器:public void addActionListener(ActionListener l),所以MenueItem以及其子类都可以用此监听器
import java.awt.*; import java.awt.event.*; public class MyMenueDemo { private Frame f; private MenuBar mb; private Menu m,subMenu; private MenuItem closeItem,subItem; MyMenueDemo(){ init(); } public void init() { f=new Frame("my Window"); f.setBounds(300, 100, 500, 600); f.setLayout(new FlowLayout()); mb=new MenuBar(); m=new Menu("文件"); subMenu=new Menu("子菜单"); subItem=new MenuItem("子菜单项"); closeItem=new MenuItem("退出"); subMenu.add(subItem); m.add(subMenu); m.add(closeItem); mb.add(m); f.setMenuBar(mb); myEvent(); f.setVisible(true); } public void myEvent() { closeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); f.addWindowList 4000 ener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
需求:希望能够创建一个“打开”对话框,就像word–>文件—>打开,弹出的对话框一样。
在Dialog子类FileDialog就可以实现这个功能(调用window窗口),方便了变成开发。
FileDialog类显示一个对话框窗口,用户可以从中选择文件。
public FileDialog(Frame parent,String title, int mode):根据mode的选取不同可以打开文件或者保存文件
TextArea类中
public void append(String str)将给定文本追加到文本区的当前文本。
import java.awt.*; import java.awt.event.*; import java.io.*; public class MyMenueDemo { private Frame f; private MenuBar bar; private TextArea ta; private Menu fileMenu; private MenuItem closeItem,openItem,saveItem; private FileDialog openDia,saveDia; private File file; MyMenueDemo(){ init(); } public void init() { f=new Frame("my Window"); f.setBounds(300, 100, 500, 600); //不设置布局,默认四周式,只有一个组件TextArea ,会显示整个窗体,也比较合理 bar=new MenuBar(); fileMenu=new Menu("文件"); closeItem=new MenuItem("退出"); openItem=new MenuItem("打开"); saveItem=new MenuItem("保存"); ta=new TextArea(); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(closeItem); bar.add(fileMenu); f.setMenuBar(bar); f.add(ta); openDia=new FileDialog(f,"我要打开",FileDialog.LOAD); saveDia=new FileDialog(f,"我要保存",FileDialog.SAVE); myEvent(); f.setVisible(true); } public void myEvent() { openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { openDia.setVisible(true); String str=openDia.getFile();//获取选中的文件名称 String dir=openDia.getDirectory();//获取目录 if(str==null||dir==null)//用户不想打开文件 return; ta.setText("");//将之前的文件的文本删除 file=new File(dir,str); BufferedReader br=null; try { //将硬盘上的文件内容写到文本区域中 br=new BufferedReader(new FileReader(file)); String len=null; try { while((len=br.readLine())!=null) { ta.append(len+"\r\n"); } } catch (IOException e1) { e1.printStackTrace(); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } finally { try { br.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }); closeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); saveItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(file==null) { saveDia.setVisible(true); String str=saveDia.getFile(); String dir=saveDia.getDirectory(); System.out.println(dir+"------------"+str);//用户文件保存位置 if(dir==null||str==null)//新写的文件没保存 return ; file=new File(dir,str); } BufferedWriter bufw=null; try { bufw=new BufferedWriter(new FileWriter(file)); String text=ta.getText();//从文本区域中获取数据,写入文件中 bufw.write(text); bufw.flush(); } catch (IOException e1) { throw new RuntimeException("没这文件"); } finally{ try { bufw.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
相关文章推荐
- java-简单的文件打开,保存,编辑功能的记事本实现
- nodejs实现文件下载功能,防止文本TXT类文件直接打开
- 黑马程序员_java小程序——实现简单记事本的打开保存功能
- MFC实现文件打开和保存功能实现
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- Java实现最简单的在线打开保存Excel文件
- 《MFC实现文件打开和保存功能实现》
- JFrame实现无边框,实现拖动,实现关闭按钮,打开实现保存文件到本地,实现头像放大功能,实现图片浏览器
- 文件的打开保存另存为功能代码实现
- 黑马程序员——用AWT写的假记事本,实现退出,保存,打开等功能
- java实现打开文件和保存文件功能
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- nodejs实现文件下载功能,防止文本TXT类文件直接打开
- c#开发一个“记事本”程序,要求能够实现文件的新建、打开、编辑、保存功能
- 用PageOffice实现最简单的在线打开保存PPT文件
- iOS 用其他应用程序打开文件功能如何实现的iOS开发 - CocoaChina CocoaChina_让移动开发更简单
- 使用 Raphael js 和JSON 来实现具备保存功能的简单的仿QQ秀
- [原创] 不仅拥有XmlDocument一样简单的XML操作方法,并且实现数据文件安全存储功能——XmlEDocument
- 实现文件右键“打开方式”菜单功能(查看系统这种功能对比实现)
- 简单介绍用JSP来实现文件下载功能的几种方式