java编写一个简单记事本

 package Notepad; 
 




import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;


import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
import javax.swing.filechooser.FileFilter;




/**
 * @author 李龙
 * @date 2011-8-11 下午6:47:21<br/>
 * @version 1.0
 * @Description:
 */
public class Notepad extends JFrame implements ActionListener {
public static void main(String args[]) {
Notepad notepad = new Notepad();
notepad.setVisible(true);
}


private static final long serialVersionUID = 1L;
JScrollPane JScorll = null;
JMenuBar JMenubarTool = null;
JMenu JMenuFile = null, JMenuEdit = null, JMenuHelp = null;
JMenuItem JmenuNew = null, JmenuOpen = null, Jmenusave = null,
JmenuSaveaAS = null, JmenuExit = null, JMenuSelectAll = null,
JMenucut = null, JMenucopy = null, JmenuDate = null,
JmenuHelp = null, JmenuVersion = null;
JTextArea Area = null;
JFileChooser choose = null;
File file = null;
FileReader fileReader = null;
FileWriter fileWriter = null;
BufferedReader bufferedReader = null;
BufferedWriter buffereWriter = null;
int returnValue;


public Notepad() {
Toolkit Tool = Toolkit.getDefaultToolkit();
int height = Tool.getScreenSize().height;
int width = Tool.getScreenSize().width;
this.setLocation(width / 4, height / 4);
this.setSize(700, 500);
this.setTitle("JAVA——简易记事本");
Area = new JTextArea(20, 50);
Area.setLineWrap(true);// 设置自动换行
Area.setFont(new Font("", 6, 20));
JScorll = new JScrollPane(Area, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
JMenubarTool = new JMenuBar();
JMenuFile = new JMenu("文件");
JMenuEdit = new JMenu("编辑");
JMenuHelp = new JMenu("帮助");
JmenuNew = new JMenuItem("新建");
JmenuOpen = new JMenuItem("打开");
Jmenusave = new JMenuItem("保存");
JmenuSaveaAS = new JMenuItem("另存为");
JmenuExit = new JMenuItem("退出");
JMenuSelectAll = new JMenuItem("全选");
JMenucut = new JMenuItem("剪切");
JMenucopy = new JMenuItem("复制");
JmenuDate = new JMenuItem("添加时间");
JmenuHelp = new JMenuItem("帮助");
JmenuVersion = new JMenuItem("关于JAVA——简易记事本");
JmenuNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
JmenuOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
Jmenusave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
JmenuSaveaAS.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK));
JmenuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
JMenuSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
JMenucopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
JMenucut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
this.add(JScorll);
this.setJMenuBar(JMenubarTool);
JMenubarTool.add(JMenuFile);
JMenubarTool.add(JMenuEdit);
JMenubarTool.add(JMenuHelp);
JMenuFile.add(JmenuNew);
JMenuFile.add(JmenuOpen);
JMenuFile.add(Jmenusave);
JMenuFile.add(JmenuSaveaAS);
JMenuFile.add(JmenuExit);
JMenuEdit.add(JMenuSelectAll);
JMenuEdit.add(JMenucopy);
JMenuEdit.add(JMenucut);
JMenuEdit.add(JmenuDate);
JMenuHelp.add(JmenuHelp);
JMenuHelp.add(JmenuVersion);
JmenuNew.addActionListener(this);
JmenuOpen.addActionListener(this);
Jmenusave.addActionListener(this);
JmenuSaveaAS.addActionListener(this);
JmenuExit.addActionListener(this);
JMenuSelectAll.addActionListener(this);
JMenucopy.addActionListener(this);
JmenuDate.addActionListener(this);
JmenuHelp.addActionListener(this);
JmenuVersion.addActionListener(this);
choose = new JFileChooser();
choose.setFileFilter(new filter());
}


public void actionPerformed(ActionEvent e) {


if (e.getSource().equals(JmenuNew)) {
this.newFile();
} else if (e.getSource().equals(JmenuOpen)) {
this.openFile();
} else if (e.getSource().equals(Jmenusave)) {
this.save();
} else if (e.getSource().equals(JmenuSaveaAS)) {
this.saveAs();
} else if (e.getSource().equals(JmenuExit)) {
System.exit(0);
} else if (e.getSource().equals(JMenuSelectAll)) {
this.Area.selectAll();
} else if (e.getSource().equals(JMenucut)) {
this.Area.cut();
} else if (e.getSource().equals(JMenucopy)) {
this.Area.cut();
} else if (e.getSource().equals(JmenuDate)) {
this.Date();
} else if (e.getSource().equals(JmenuHelp)) {
this.help();
} else if (e.getSource().equals(JmenuVersion)) {
this.version();
}
}


// 文件类型判断
class filter extends FileFilter {
public boolean accept(File file) {


String name = file.getName().toLowerCase();
if (name.endsWith("*.java") || name.endsWith("*.txt")) {
return true;
} else {
return false;
}
}
public String getDescription() {
return "*.java*.txt";
}
}


// 新建文件
private void newFile() {
this.file = null;
this.fileWriter = null;
this.buffereWriter = null;
this.fileReader = null;
this.bufferedReader = null;
this.Area.setText("请在这里输入文本……");
}


// 打开记事本txt文件


private void openFile() {


returnValue = choose.showOpenDialog(this);
if (returnValue == choose.APPROVE_OPTION) {
file = choose.getSelectedFile();
String contents = "";
try {
this.fileReader = new FileReader(file);
this.bufferedReader = new BufferedReader(fileReader);
while (bufferedReader.ready()) {
contents = contents + "\n" + bufferedReader.readLine();
}
bufferedReader.close();
fileReader.close();
this.Area.setText(contents);
JmenuSaveaAS.setEnabled(true);
} catch (FileNotFoundException fe) {
JOptionPane.showMessageDialog(this, "文件没有找到!请重新操作!", "提示",JOptionPane.INFORMATION_MESSAGE);
closeEditor();
// fe.printStackTrace();
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "文件操作出错!请重新选择!", "提示",JOptionPane.INFORMATION_MESSAGE);
closeEditor();
ie.printStackTrace();
}
}
}


// 文件保存
public void save() {
int result = JOptionPane.showConfirmDialog(this, "确定要保存吗?", "提示",JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
if (file == null) {
// 没有打开的文件,就转到另存为
saveAs();
this.JmenuSaveaAS.setEnabled(false);
return;
}
// 有打开的文件了,就直接保存
try {
fileWriter = new FileWriter(file, false);
buffereWriter = new BufferedWriter(fileWriter);
buffereWriter.write(Area.getText());
buffereWriter.close();
fileWriter.close();
this.Jmenusave.setEnabled(false);
JOptionPane.showMessageDialog(this, "保存成功", "提示",JOptionPane.INFORMATION_MESSAGE);
} catch (FileNotFoundException fe) {


} catch (IOException ie) {


}
}
}


// 文件另存为
private void saveAs() {
returnValue = choose.showSaveDialog(this);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File newFile = null;
String fileType = choose.getFileFilter().getDescription();
// 确定文件后缀名
if (fileType.length() == 11) {
fileType = fileType.substring(1, 6);
} else {
fileType = fileType.substring(1, 6);
}
newFile = new File(choose.getCurrentDirectory(), choose.getSelectedFile().getName() + fileType);
try {
if (newFile.exists()) {
// "该文件已存在,确定要覆盖吗?", "提示",
int result = JOptionPane.showConfirmDialog(this,JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
// 有同名的文件,直接修改
writeInFile(newFile);
} else {
// 新建文件
saveAs();
}
} else {
newFile.createNewFile();
writeInFile(newFile);
}
} catch (FileNotFoundException fe) {
JOptionPane.showMessageDialog(this, "在指定目录下没有找到文件!", "提示",JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "修改文件出错!", "提示",JOptionPane.INFORMATION_MESSAGE);
}
}


}


// 写入内容到文件
private void writeInFile(File file) throws IOException,
FileNotFoundException {
FileWriter fileWriter = new FileWriter(file, false);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(this.Area.getText());
bufferedWriter.close();
fileWriter.close();
// 保存成功后,提示信息
JOptionPane.showMessageDialog(this, "文件保存成功!", "提示",JOptionPane.INFORMATION_MESSAGE);
}


// 关闭窗体
private void closeEditor() {
this.dispose();// 关闭、释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源
}


// 帮助
public void help() {
String str = "这是一个JAVA简易记事本,操作按照菜单栏提示操作即可!!" + "\r\n"+ "谢谢使用本软件,联系方式:QQ:157547901";
JOptionPane.showMessageDialog(this, str, "帮助",JOptionPane.INFORMATION_MESSAGE);
}


// 版本
public void version() {
JOptionPane.showMessageDialog(this, "这是一个JAVA简易记事本,版本V1.0", "版本",JOptionPane.INFORMATION_MESSAGE);
}


/* 插入时间 */
public void Date() {


Calendar date = Calendar.getInstance();
int week = (date.get(Calendar.DAY_OF_WEEK) - 1);
String day = null;
switch (week) {
case 0:
day = "日";
break;
case 1:
day = "一";
break;
case 2:
day = "二";
break;
case 3:
day = "三";
break;
case 4:
day = "四";
break;
case 5:
day = "五";
break;
case 6:
day = "六";
break;
}
Area.setText("文本制作时间:  " + date.get(Calendar.YEAR) + "年"+ (date.get(Calendar.MONTH) + 1) + "月"+ date.get(Calendar.DAY_OF_MONTH) + "日      " + "星期" + day);
}
}

你可能感兴趣的:(java,String,File,calendar,null)