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