我老婆(呵呵是我偷偷的一相情愿的叫)给我题,叫我帮她做,她叫我在圣诞节那天必须做好给她,时间很紧,我现在也在做着,但我怕到时做不出来,所以请大虾们帮帮忙,小第在这多谢大家了。实不相瞒,那天正好是小第的生日,所以还请大家帮帮忙,谢谢大家~
可以的话,请大家把做好的发到我邮箱来hjp200@163.com.非常感谢大家。
项目任务:制作类似Windows记事本的程序,提供如下的菜单:
打开…… 关闭 保存 另存为 退出 剪切 复制 粘贴
文件 编辑
打开 剪贴
关闭 复制
保存 粘贴
另存为
退出
技术要点:
打开、保存文件使用文件输入输出流。
打开、另存文件时候,使用系统预定义的文本对话框。
剪切、复制、粘贴功能可灵活使用 TextArea类的方法:String , getSelectedText()和setSelectedText(String s)。
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class FrameInOut extends Frame implements ActionListener
{
FileDialog fileDlg;
String str,fileName;
TextArea textArea = new TextArea();
MenuBar mb = new MenuBar();
Menu menu1 = new Menu("文件");
MenuItem open = new MenuItem("打开");
MenuItem close = new MenuItem("关闭");
MenuItem save0 = new MenuItem("保存");
MenuItem save = new MenuItem("另存为");
MenuItem exit = new MenuItem("退出");
Menu menu2 = new Menu("编辑");
MenuItem cut = new MenuItem("剪贴");
MenuItem copy = new MenuItem("复制");
MenuItem affix = new MenuItem("粘贴");
FrameInOut()
{
super("我的文本编辑器--新文本文件");
setSize(300,200);
add("Center",textArea);
menu1.add(open);
menu1.add(close);
menu1.add(save0);
menu1.add(save);
menu1.add(exit);
menu2.add(cut);
menu2.add(copy);
menu2.add(affix);
mb.add(menu1);
mb.add(menu2);
setMenuBar(mb);
open.addActionListener(this);//将行为监听器加入到open中
close.addActionListener(this);
save0.addActionListener(this);
save.addActionListener(this);
exit.addActionListener(this);
cut.addActionListener(this);
copy.addActionListener(this);
affix.addActionListener(this);
this.addWindowListener(new WA());
show();
}
public void actionPerformed(ActionEvent e)
{
byte byteBuf[]=new byte[10000];
if(e.getSource()==exit)
{
dispose();
System.exit(0);
}
if(e.getSource()==close)
{
textArea.setBackground(new Color(128,128,128));
textArea.setText(null);
setTitle("我的文本编辑器");
}
if(e.getSource()==open)
{
textArea.setBackground(new Color(255,255,255));
fileDlg=new FileDialog(this,"打开文件");
fileDlg.setDirectory("c:\\Documents and Settings");
fileDlg.show();
fileName=fileDlg.getDirectory()+fileDlg.getFile();
try
{
FileInputStream in = new FileInputStream(fileName);
in.read(byteBuf);
in.close();
str= new String(byteBuf);
textArea.setText(str);
setTitle("我的文本编辑器"+fileName);
}
catch(IOException E)
{}
}
if(e.getSource() == save)
{
fileDlg = new FileDialog(this,"另存为",FileDialog.SAVE);
fileDlg.setDirectory("c:\\Documents and Settings");
fileDlg.show();
fileName=fileDlg.getDirectory()+fileDlg.getFile();
str=textArea.getText();
byteBuf=str.getBytes();
try
{
FileOutputStream out= new FileOutputStream(fileName);
out.write(byteBuf);
out.close();
}
catch(IOException E)
{}
}
}
}
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class TextEditor
{
public static void main(String args[])
{
new FrameInOut();
}
}
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class WA extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
((FrameInOut)e.getSource()).dispose();
System.exit(0);
}
}