importjava.awt.EventQueue;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjavax.swing.JFrame;importjava.awt.BorderLayout;importjavax.swing.JPanel;importjavax.swing.JMenuBar;importjavax.swing.JMenu;importjavax.swing.JMenuItem;importjavax.swing.JSeparator;importjavax.swing.JTextArea;importjavax.xml.transform.Templates;/**记事本的图形用户界面应用程序 加密
*@author李祖林
*2017-6-22*/
public class Note2 implementsActionListener{privateJFrame frame;
JMenuItem New,Open,Save,Close;//四个菜单栏
JTextArea textArea; //输入框
File flieName = new File("D://file.txt"); //默认文件路径
public static voidmain(String[] args) {
EventQueue.invokeLater(newRunnable() {public voidrun() {try{
Note2 window= newNote2();
window.frame.setVisible(true);
}catch(Exception e) {
e.printStackTrace();
}
}
});
}publicNote2() {
frame= newJFrame();
frame.setBounds(100, 100, 567, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout(0, 0));
textArea= newJTextArea();
frame.getContentPane().add(textArea, BorderLayout.CENTER);
JMenuBar menuBar= newJMenuBar();
frame.getContentPane().add(menuBar, BorderLayout.NORTH);
JMenu menu= new JMenu("\u6587\u4EF6");
menuBar.add(menu);
New= new JMenuItem("\u65B0\u5EFA");
menu.add(New);New.addActionListener(this);
Open= new JMenuItem("\u6253\u5F00");
menu.add(Open);Open.addActionListener(this);
Save= new JMenuItem("\u4FDD\u5B58");
menu.add(Save);Save.addActionListener(this);
JSeparator separator= newJSeparator();
menu.add(separator);
Close= new JMenuItem("\u9000\u51FA");
menu.add(Close);Close.addActionListener(this);
}public voidactionPerformed(ActionEvent e) {if(e.getSource() ==New){
textArea.setText("");
}else if(e.getSource() ==Open){
textArea.setText("");
readFile();
}else if(e.getSource() ==Save){
saveFile();
}else{
System.exit(0);
}
}/*解码的过程*/
public voidreadFile(){try{
BufferedReader bufferedReader= new BufferedReader(newFileReader(flieName));
String text;//每行字符串
char[] ch = new char[1024]; //字符数组
int tmp; //字符的ASCII码值
while((text = bufferedReader.readLine())!=null){
ch= text.toCharArray(); //字符串->字符数组
for(int i = 0;i < ch.length;i++){
tmp= (int)ch[i] - 30; //解密
if(tmp<0){
tmp+= 127;
}
ch[i]= (char)tmp; //转化为字符
}
text= String.valueOf(ch); //转化为字符串
textArea.append(text);
}
bufferedReader.close();
}catch(IOException e) {
System.err.println("读取文件发生错误!");
}
}/*加密的过程*/
public voidsaveFile(){try{
BufferedWriter bufferedWriter= new BufferedWriter(newFileWriter(flieName));
String string= textArea.getText(); //获取文本框内容
char[] ch = new char[1024]; //字符数组
int tmp; //字符的ASCII码值
ch = string.toCharArray(); //字符串->字符数组
for(int i = 0;i < string.length();i++){
tmp= (int)ch[i] + 30; //加密:ASCII+30(<=127)
if(tmp>127)
tmp-= 127;
ch[i]= (char)tmp;
}
string= String.valueOf(ch); //转化成字符串的两种方式
/*两种方式:string = ch.toString();*/bufferedWriter.write(string);//写入
bufferedWriter.close();
}catch(IOException e) {
System.err.println("写入文件错误!");
}
}
}