使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框
获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog.LOAD
给MenuItem对象设置点击事件,点击事件中,调用FileDialog对象的setVisible(true)方法
调用FileDialog对象的getDirectory()方法,得到String的目录
调用FileDialog对象的getFile()方法,得到String的文件名称
获取到File对象,构造参数:String目录,String文件名
读取字符流数据,显示出来
import java.awt.FileDialog; java.awt.Frame; java.awt.Menu; java.awt.MenuBar; java.awt.MenuItem; java.awt.TextArea; java.awt.event.ActionEvent; java.awt.event.ActionListener; java.awt.event.WindowAdapter; java.awt.event.WindowEvent; java.io.BufferedReader; java.io.File; java.io.FileReader; public class MenuBarDemo { private Frame frame; MenuBar menuBar; Menu menu; Menu subMenu; MenuItem menuItem,openFileBtn; FileDialog openFile; TextArea ta; public MenuBarDemo() { init(); addEvents(); } void init() { frame = new Frame("菜单测试"); frame.setBounds(300,200,500,400); // 菜单栏 menuBar = new MenuBar(); 菜单 menu = new Menu("文件" 菜单项 openFileBtn=new MenuItem("打开"); menuItem = new MenuItem("退出" 菜单添加菜单项 menu.add(openFileBtn); menu.add(menuItem); 菜单栏添加菜单 menuBar.add(menu); frame.setMenuBar(menuBar); 文本域 ta= TextArea(); frame.add(ta); frame.setVisible(true); } addEvents(){ frame.addWindowListener( WindowAdapter() { @Override windowClosing(WindowEvent e) { System.exit(0); } }); 菜单点击 menuItem.addActionListener( ActionListener() { @Override actionPerformed(ActionEvent e) { System.exit(0打开文件 openFileBtn.addActionListener( actionPerformed(ActionEvent e) { openFile=new FileDialog(frame,"打开文件",FileDialog.LOAD); openFile.setVisible(); String dirName=openFile.getDirectory(); String fileName=openFile.getFile(); System.out.println(dirName); 读取展示文件 if(dirName==null || fileName==null){ return; } File file= File(dirName,fileName); try { BufferedReader br=new BufferedReader( FileReader(file)); String line; StringBuilder text = StringBuilder(); while((line=br.readLine()) != ){ text.append(line); text.append("\r\n"); } ta.setText(text.toString()); } catch (Exception e1) { e1.printStackTrace(); } } }); } /** * @param args */ static main(String[] args) { MenuBarDemo(); } }