使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框
获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog.LOAD
给MenuItem对象设置点击事件,点击事件中,调用FileDialog对象的setVisible(true)方法
调用FileDialog对象的getDirectory()方法,得到String的目录
调用FileDialog对象的getFile()方法,得到String的文件名称
选中文件后,在文本域中显示出来
获取TextArea对象,用来显示文本字符
获取到File对象,构造参数:String目录,String文件名
读取字符流数据,显示出来
import java.awt.FileDialog; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class MenuBarDemo { private Frame frame; private MenuBar menuBar; private Menu menu; private Menu subMenu; private MenuItem menuItem,openFileBtn; private FileDialog openFile; private TextArea ta; public MenuBarDemo() { init(); addEvents(); } public 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=new TextArea(); frame.add(ta); frame.setVisible(true); } public void addEvents(){ frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); //菜单点击 menuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); //打开文件 openFileBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { openFile=new FileDialog(frame, "打开文件", FileDialog.LOAD); openFile.setVisible(true); String dirName=openFile.getDirectory(); String fileName=openFile.getFile(); System.out.println(dirName); //读取展示文件 if(dirName==null || fileName==null){ return; } File file=new File(dirName,fileName); try { BufferedReader br=new BufferedReader(new FileReader(file)); String line; StringBuilder text = new StringBuilder(); while((line=br.readLine()) != null){ text.append(line); text.append("/r/n"); } ta.setText(text.toString()); } catch (Exception e1) { e1.printStackTrace(); } } }); } /** * @param args */ public static void main(String[] args) { new MenuBarDemo(); } }
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12636.html