java编写的记事本的保存和另存为功能
没有英文名 2009-12-19 02:03:27 我用java写了一个记事本,能够打开保存和另存为的对话框 但是实际上却没有实现这两个功能 比如说 我用这个记事本写了一点文字现在要保存它,单击这个记事本的文件,然后 选中另存为 在选着 要保存的路径 单击保存就可以了 。 但是我现在单击保存确定按钮后 去盘中找不到这个文件,这个功能没实现 。望各位高手给点意见。或给个这样的列子。(其他部分代码可以不要,只给这部分代码就可以了。) 下面是我的代码
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
class MyWindow extends Frame implements ActionListener//,KeyListener
{
MenuBar menubar;
Menu menu1,menu2,menu3,menu4;
MenuItem menuitem[]=new MenuItem[22];
String name[]={"新建(N)","打开(O)...","保存(S)","另存为(A)...","页面设置(U)...","打印(P)...","退出(X)",
"撤消(U)","剪贴(T)","复制(C)","粘贴(P)","删除(L)","查找(F)...","查找下一个(N)","替换(R)...",
"转到(G)...","全选(A)","时间/日期(D)","自动换行(W)","字体(F)...","帮助主题(H)","关于记事本(A)"};
TextArea text1;
FileDialog filedialog_save,filedialog_load,filedialog_save1; //声明一个保存文件对话框和一个打开文件对话框和另存为对话框
PrintJob p=null; //声明一个PrintJob对象 即打印
Graphics g=null;
Clipboard clipboard=null; //剪贴板
int i;
MyWindow(String s)
{
super(s);
Toolkit tool=getToolkit();
clipboard =getToolkit().getSystemClipboard(); //获得系统剪贴板
Dimension dim=tool.getScreenSize();
text1=new TextArea();
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("编辑");
menu3=new Menu("格式");
menu4=new Menu("帮助");
filedialog_load=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
filedialog_load.setVisible(false);
filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
filedialog_save.setVisible(false);
filedialog_save1=new FileDialog(this,"另存为",FileDialog.SAVE);
filedialog_save1.setVisible(false);
for(i=0;i<name.length;i++)
{
menuitem[i]=new MenuItem(name[i]);
menuitem[i].addActionListener(this);
}
menu1.add(menuitem[0]);
menu1.add(menuitem[1]);
menu1.add(menuitem[2]);
menu1.add(menuitem[3]);
menu1.addSeparator();//分割线
menu1.add(menuitem[4]);
menu1.add(menuitem[5]);
menu1.addSeparator();//分割线
menu1.add(menuitem[6]);
menu2.add(menuitem[7]);
menu2.addSeparator();//分割线
menu2.add(menuitem[8]);
menu2.add(menuitem[9]);
menu2.add(menuitem[10]);
menu2.add(menuitem[11]);
menu2.addSeparator();//分割线
menu2.add(menuitem[12]);
menu2.add(menuitem[13]);
menu2.add(menuitem[14]);
menu2.add(menuitem[15]);
menu2.addSeparator();//分割线
menu2.add(menuitem[16]);
menu2.add(menuitem[17]);
menu3.add(menuitem[18]);
menu3.add(menuitem[19]);
menu4.add(menuitem[20]);
menu4.add(menuitem[21]);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menubar.add(menu4);
setMenuBar(menubar);
setBounds(100,100,dim.width/2,dim.height/2);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{System.exit(0);
}
}
);
filedialog_load.addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{filedialog_load.setVisible(false);
}
}
);
filedialog_save.addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{filedialog_save.setVisible(false);
}
}
);
filedialog_save1.addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{filedialog_save1.setVisible(false);
}
}
);
add(text1,BorderLayout.CENTER);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
Object temp=e.getSource();
for(i=0;i<name.length;i++)
{ if(temp==menuitem[i])
{ if((menuitem[i].getLabel()).equals("新建(N)"))
{
new MyWindow("记事本");
} //新建功能
if((menuitem[i].getLabel()).equals("打开(O)..."))
{
filedialog_load.setVisible(true);
} //打开功能
if((menuitem[i].getLabel()).equals("保存(S)"))
{
filedialog_save.setVisible(true);
} //保存功能
if((menuitem[i].getLabel()).equals("另存为(A)..."))
{
filedialog_save1.setVisible(true);
} //另存为功能
if((menuitem[i].getLabel()).equals("打印(P)..."))
{
p=getToolkit().getPrintJob(this,"ok",null);
g=p.getGraphics();
g.translate(120,200);
this.printAll(g);
g.dispose();
p.end();
} //打印功能
if((menuitem[i].getLabel()).equals("退出(X)"))
{
System.exit(0);
} // 退出(X)功能
if((menuitem[i].getLabel()).equals("剪贴(T)"))
{
String thing=text1.getSelectedText();
StringSelection text=new StringSelection(thing);
clipboard.setContents(text,null);
int start=text1.getSelectionStart();
int end=text1.getSelectionEnd();
text1.replaceRange(" ",start,end);
} //剪贴功能
if((menuitem[i].getLabel()).equals("复制(C)"))
{
String thing=text1.getSelectedText();
StringSelection text=new StringSelection(thing);
clipboard.setContents(text,null);
} //复制功能
if((menuitem[i].getLabel()).equals("粘贴(P)"))
{
Transferable contents=clipboard.getContents(this);
DataFlavor flavor=DataFlavor.stringFlavor;
if(contents.isDataFlavorSupported(flavor))
try{
String str;
str=(String)contents.getTransferData(flavor);
text1.append(str);
}
catch(Exception ee){}
}//黏贴功能
if((menuitem[i].getLabel()).equals("删除(L)"))
{
String thing=text1.getSelectedText();
int start=text1.getSelectionStart();
int end=text1.getSelectionEnd();
text1.replaceRange(" ",start,end);
} //删除功能
}
}
}
}
public class JiShiBen
{
public static void main(String arg[])
{
new MyWindow("记事本");
}
}