import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class NotePad extends JFrame implements ActionListener
{
JMenuBar bar;
JMenu menu,type;
JMenuItem open,save,saveAs,exit,font,color;
JTextArea text;
String fileName="";
FileDialog saveFile,loadFile;
byte[] tom=new byte[100];
int b;
public NotePad()
{
super("记事本");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bar=new JMenuBar();
text=new JTextArea();
text.setFont(new Font("宋体",Font.PLAIN,24));
menu=new JMenu("文件");
type=new JMenu("格式");
open=new JMenuItem("打开");
save=new JMenuItem("保存");
saveAs=new JMenuItem("另存为");
exit=new JMenuItem("退出");
font=new JMenuItem("字体");
color=new JMenuItem("字体颜色");
saveFile=new FileDialog(this,"保存对话框",FileDialog.SAVE);
loadFile=new FileDialog(this,"打开对话框",FileDialog.LOAD);
open.addActionListener(this);
save.addActionListener(this);
saveAs.addActionListener(this);
exit.addActionListener(this);
font.addActionListener(this);
color.addActionListener(this);
menu.add(open); menu.add(save); menu.add(saveAs); menu.add(exit);
type.add(font);type.add(color);
bar.add(menu);bar.add(type);
add(BorderLayout.NORTH,bar);add(BorderLayout.CENTER,text);
add(new JScrollPane(text));
this.setBounds(50, 30, 1100, 600);
}
public void open()
{
loadFile.setVisible(true);
text.setText("");
try{
fileName=loadFile.getDirectory()+loadFile.getFile();
File file=new File(fileName);
FileInputStream in=new FileInputStream(file);
while((b=in.read(tom, 0,100))!=-1)
{
String str=new String(tom,0,b);
text.append(str);
}
save.setEnabled(true);
saveAs.setEnabled(true);
}catch(IOException e)
{
e.printStackTrace();
}
}
public void save()
{
if(fileName.equals(""))
{
saveFile.setVisible(true);
fileName=saveFile.getDirectory()+saveFile.getFile();
try{
File file=new File(fileName);
FileWriter f=new FileWriter(file);
BufferedWriter out=new BufferedWriter(f);
String strT=text.getText();
out.write(strT,0,strT.length());
out.flush();
}catch(Exception e)
{
e.printStackTrace();
}
}
else{
try{
File file=new File(fileName);
FileWriter f=new FileWriter(file);
BufferedWriter out=new BufferedWriter(f);
String strT=text.getText();
out.write(strT,0,strT.length());
out.flush();
}catch(IOException e)
{
e.printStackTrace();
}
}
}
public void saveAs()
{
saveFile.setVisible(true);
try{
fileName=saveFile.getDirectory()+saveFile.getFile();
File file=new File(fileName);
FileWriter f=new FileWriter(file);
BufferedWriter out=new BufferedWriter(f);
String strT=text.getText();
out.write(strT,0,strT.length());
out.flush();
}catch(IOException e)
{
e.printStackTrace();
}
}
public void exit()
{
try{
fileName="";
System.exit(-1);
}catch(Exception ss)
{
ss.printStackTrace();
}
}
public void setFont()
{
}
public void setColor()
{
Color newColor=JColorChooser.showDialog(this, "设置字体颜色", text.getBackground());
text.setForeground(newColor);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==open)
{
open();
}
else if(e.getSource()==save)
{
save();
}
else if(e.getSource()==saveAs)
{
saveAs();
}
else if(e.getSource()==exit)
{
exit();
}
else if(e.getSource()==font)
{
setFont();
}
else if(e.getSource()==color)
{
setColor();
}
}
public static void main(String[] args) {
new NotePad().setVisible(true);
}
}
评论1