使用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(); } }