文件对话框:使用FileDialog类。其主要方法为:
FileDialog(Frame f,String s,int mode).f对话框所在的窗体,s对话框的名字, mode=FileDialog.LOAD,FileDialog.SAVE.
public String getDirectory()。获取当前对话框中显示的文件的所属目录。
public String getFile() 。获取当前文件对话框中显示的文件的 字符串表示(即文件路径)。
其功能是:打开一个文件,并将内容显示到对话框中,并能将对话框中的内容保存到另一个文件中。
代码如下:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class FileOperation {
public static void main(String args[]){
FileWindows win=new FileWindows();
}}
class FileWindows extends JFrame implements ActionListener{
FileDialog fileDialog_save,fileDialog_load;
MenuBar menubar;
Menu menu;
MenuItem itemOpen,itemSave;
TextArea text;
BufferedReader in;
BufferedWriter out;
FileReader file_reader;
FileWriter toFile;
FileWindows(){
super("带文件对话框的窗口");
setSize(260,270);
setVisible(true);
menubar =new MenuBar();
menu=new Menu("文件");
itemOpen=new MenuItem("open");
itemSave=new MenuItem("save");
itemOpen.addActionListener(this);
itemSave.addActionListener(this);
menu.add(itemOpen);
menu.add(itemSave);
menubar.add(menu);
setMenuBar(menubar);
fileDialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
fileDialog_load=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
fileDialog_save.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){fileDialog_save.setVisible(false);}
});
fileDialog_load.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){fileDialog_load.setVisible(false);}
});
addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});
text=new TextArea(10,10);
add(text,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==itemOpen)
{
fileDialog_load.setVisible(true);
text.setText(null);
String s;
if(fileDialog_load.getFile()!=null){
try {
File file=new File(fileDialog_load.getDirectory(),fileDialog_load.getFile());
file_reader=new FileReader(file);
in=new BufferedReader(file_reader);
while((s=in.readLine())!=null)text.append(s+'/n');
in.close();
file_reader.close();
}
catch (IOException e2){}
}
}
else if(e.getSource()==itemSave)
{
fileDialog_save.setVisible(true);
if(fileDialog_save.getFile()!=null)
{
try {
File file=new File(fileDialog_save.getDirectory(),fileDialog_save.getFile());
FileWriter tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text.getText(),0,(text.getText().length()));
out.flush();
out.close();
tofile.close();
}
catch (IOException e2){}
}
}
}
}