该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我编的一个记事本 自动换行该如何实现
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
public class Jishiben extends Frame implements ActionListener
{
FileDialog fileDlg;
String str, fileName;
int p;
byte byteBuf[]=new byte[1000000];
TextArea ta=new TextArea();
MenuBar mb=new MenuBar();
Menu m1=new Menu("文件");
MenuItem New=new MenuItem("新建");
MenuItem open=new MenuItem("打开");
MenuItem save=new MenuItem("保存");
MenuItem sealset=new MenuItem("打印设置");
MenuItem seal=new MenuItem("打印");
MenuItem exit=new MenuItem("退出");
Menu m2=new Menu("编辑");
MenuItem copy=new MenuItem("复制");
MenuItem cut=new MenuItem("剪切");
MenuItem paste=new MenuItem("粘贴");
MenuItem delete=new MenuItem("删除");
MenuItem all=new MenuItem("全选");
MenuItem time=new MenuItem("时间/日期");
Menu m3=new Menu("格式");
CheckboxMenuItem newline=new CheckboxMenuItem("自动换行");
PrinterJob prt=PrinterJob.getPrinterJob();
Jishiben()
{
setTitle("Lite记事本 1.0");
setSize(600,380);
add("Center", ta);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
m1.setEnabled(true);
m1.add(New);
m1.add(open);
m1.add(save);
m1.addSeparator();
m1.add(sealset);
m1.add(seal);
m1.addSeparator();
m1.add(exit);
mb.add(m1);
m2.add(copy);
m2.add(cut);
m2.add(paste);
m2.add(delete);
m2.addSeparator();
m2.add(all);
m2.add(time);
m2.add(newline);
mb.add(m2);
m3.add(newline);
mb.add(m3);
m4.add(about);
mb.add(m4);
setMenuBar(mb);
New.addActionListener(this);
open.addActionListener(this);
save.addActionListener(this);
sealset.addActionListener(this);
seal.addActionListener(this);
exit.addActionListener(this);
copy.addActionListener(this);
cut.addActionListener(this);
paste.addActionListener(this);
delete.addActionListener(this);
all.addActionListener(this);
time.addActionListener(this);
show();
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==New)// 新建
ta.setText("");
if (e.getSource()==open)// 打开
{
fileDlg=new FileDialog(this,"打开文件");
fileDlg.show();
fileName=fileDlg.getFile();
try
{
FileInputStream in=new FileInputStream(fileName);
in.read(byteBuf);
in.close();
str=new String(byteBuf);
ta.setText(str);
setTitle("记事本 - "+fileName);
}
catch(IOException ioe)
{
}
}
if (e.getSource()==save)// 保存文件
{
fileDlg=new FileDialog(this,"保存文件",FileDialog.SAVE);
fileDlg.show();
fileName=fileDlg.getFile();
str=ta.getText();
byteBuf=str.getBytes();
try
{
FileOutputStream out=new FileOutputStream(fileName);
out.write(byteBuf);
out.close();
}
catch(IOException ioe)
{
}
}
if(e.getSource()==sealset)// 打印页面设置
{
prt.printDialog();
}
if(e.getSource()==seal)// 打印
{
try
{
prt.print();
}
catch(Exception ew)
{
}
}
if (e.getSource()==exit)// 退出
System.exit(0);
if (e.getSource()==copy)// 复制
{
str=ta.getSelectedText();
}
if (e.getSource()==cut)// 剪切
{
str=ta.getSelectedText();
ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());
}
if (e.getSource()==paste)// 粘贴
{
p=ta.getCaretPosition();
ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());
ta.insert(str,p);
}
if(e.getSource()==delete)// 删除
{
ta.replaceRange("",ta.getSelectionStart(),ta.getSelectionEnd());
}
if(e.getSource()==all)// 全选
{
ta.selectAll();
}
if(e.getSource()==time)// 插入日期/时间
{
java.text.SimpleDateFormat formatter=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
java.util.Date currentTime=new java.util.Date();
String datetime=formatter.format(currentTime).toString();
ta.setText(ta.getText()+datetime);
}
}
}