我自己写的一个可简单加密码的记事本...加密码方法很简单
此记事本保存的时候应该保存为*.jxt
只实现了一个类 没有写main方法
你随便在哪个类里头 new Noteframe();
就行了...
import java.io.*;
import javax.swing.*;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.filechooser.*;
public class Noteframe extends WindowAdapter implements ActionListener
{
private File file=null ;
private JFrame frame=null ;
private JMenu menu1=null;
private JMenu menu2=null;
private JMenuItem menuitem10=null ;
private JMenuItem menuitem11=null ;
private JMenuItem menuitem12=null ;
private JMenuItem menuitem15=null ;
private JMenuItem menuitem21=null ;
private JMenuItem menuitem22=null ;
private JTextArea textarea=null ;
public void windowsClosing(WindowEvent we)
{
JOptionPane.showMessageDialog(null,"确定后窗口关闭");
System.exit(0);
}
private void showPanel()
{
if(this.file==null)
{
frame=new JFrame("我的个性记事本");
}
else
frame=new JFrame("我的个性记事本---"+this.file.getName());
frame.setSize(600,500) ;
frame.setResizable(true) ;
frame.addWindowListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口动作
Dimension screen=Toolkit.getDefaultToolkit().getScreenSize(); //使屏幕居中
frame.setLocation((screen.width-600)/2,(screen.height-500)/2); //使屏幕居中
menu1=new JMenu("文件") ;
menuitem10=new JMenuItem("打开..");
menuitem11=new JMenuItem("普通保存");
menuitem12=new JMenuItem("加密保存");
menuitem15=new JMenuItem("退出");
menuitem10.addActionListener(this) ;
menuitem11.addActionListener(this) ;
menuitem12.addActionListener(this) ;
menuitem15.addActionListener(this) ;
menu1.add(menuitem10) ;
menu1.add(menuitem11) ;
menu1.add(menuitem12) ;
menu1.add(menuitem15) ;
menu2=new JMenu("信息") ;
menuitem21=new JMenuItem("作者信息");
menuitem22=new JMenuItem("功能用途");
menuitem21.addActionListener(this) ;
menuitem22.addActionListener(this) ;
menu2.add(menuitem21) ;
menu2.add(menuitem22) ;
JMenuBar menubar=new JMenuBar();
menubar.add(menu1) ;
menubar.add(menu2) ;
frame.setJMenuBar(menubar);
textarea=new JTextArea();
JScrollPane jsp=new JScrollPane(textarea);
frame.getContentPane().add(jsp,"Center");
frame.setVisible(true);
}
public Noteframe()
{
this.file=null ;
showPanel();
}
public Noteframe(File file)
{
this.file=file ;
showPanel();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==menuitem15)
{
System.exit(0);
}
if(e.getSource()==menuitem11)//普通保存
{
String filenames="jxt";
FileNameExtensionFilter filefilter=new FileNameExtensionFilter(null,filenames);
JFileChooser filechooser=new JFileChooser() ;
filechooser.setFileFilter(filefilter);
filechooser.setDialogTitle("普通保存当前文本");
filechooser.setControlButtonsAreShown(true) ;//设置保存和撤消两个键是否显示
int result=filechooser.showSaveDialog(frame) ;//设置依赖的窗口
if(result==JFileChooser.APPROVE_OPTION)
{
String filename=filechooser.getSelectedFile().getAbsolutePath().trim();//读取用户输入的文件名(绝对路径)
FileWriter fw;
BufferedWriter bw;
PrintWriter pw;//三种文件流,各有其作用
try{
fw=new FileWriter(filename) ;
bw=new BufferedWriter(fw) ;//带缓冲的字符输出流
pw=new PrintWriter(bw) ;//可以提高输出速度的字符输出流
pw.println("NO");//标志当前文本是否被加密码
pw.print(textarea.getText());
pw.close() ;
JOptionPane.showMessageDialog(null,"保存成功") ;
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(null,"保存失败") ;
}
}
}
if(e.getSource()==menuitem12)//加密码保存
{
String filenames="jxt";
FileNameExtensionFilter filefilter=new FileNameExtensionFilter(null,filenames);
JFileChooser filechooser=new JFileChooser() ;
filechooser.setFileFilter(filefilter);
filechooser.setDialogTitle("加密保存当前文本");
filechooser.setControlButtonsAreShown(true) ;//设置保存和撤消两个键是否显示
int result=filechooser.showSaveDialog(frame) ;//设置依赖的窗口
if(result==JFileChooser.APPROVE_OPTION)
{
String password=JOptionPane.showInputDialog(frame,"请输入密码");
String filename=filechooser.getSelectedFile().getAbsolutePath().trim();//读取用户输入的文件名(绝对路径)
FileWriter fw;
BufferedWriter bw;
PrintWriter pw;//三种文件流,各有其作用
try{
fw=new FileWriter(filename) ;
bw=new BufferedWriter(fw) ;//带缓冲的字符输出流
pw=new PrintWriter(bw) ;//可以提高输出速度的字符输出流
pw.println("YES");//标志当前文本是否被加密码
char[] c=password.toCharArray();
for(int i=0;i<c.length;i++)
{
pw.print((char)(c[i]+10));
}
pw.println("");
c=textarea.getText().toCharArray();
for(int i=0;i<c.length;i++)
{
pw.print((char)(c[i]+10));
}
pw.println("");
pw.close() ;
JOptionPane.showMessageDialog(null,"保存成功") ;
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(null,"保存失败") ;
}
}
}//if
if(e.getSource()==menuitem10)//打开
{
String filenames="jxt";
FileNameExtensionFilter filefilter=new FileNameExtensionFilter(null,filenames);
JFileChooser filechooser=new JFileChooser() ;
filechooser.setFileFilter(filefilter);
filechooser.setDialogTitle("普通保存当前文本");
filechooser.setControlButtonsAreShown(true) ;//设置保存和撤消两个键是否显示
int result=filechooser.showOpenDialog(frame) ;//设置依赖的窗口
if(result==JFileChooser.APPROVE_OPTION)
{
String filename=filechooser.getSelectedFile().getAbsolutePath().trim();//读取用户输入的文件名(绝对路径)
FileReader fin;
BufferedReader bin;
try{
fin=new FileReader(filename) ;
bin=new BufferedReader (fin) ;
if(bin.readLine()=="NO")
{
String tem=null ;
while((tem=bin.readLine())!=null)
{
textarea.append(tem);
}
}
else
{
String tem=null ;
String pass=JOptionPane.showInputDialog(frame,"请输入密码");
String pass_local=bin.readLine();
char[] pa_file=pass_local.toCharArray();
for(int i=0;i<pa_file.length;i++)
{
pa_file[i]=(char)(pa_file[i]-10);
}
pass_local=new String(pa_file);
if(pass.equals(pass_local))//验证密码一样
{
char []tem_array=null ;
while((tem=bin.readLine())!=null)
{
tem_array=tem.toCharArray();
for(int i=0;i<tem_array.length;i++)
{
tem_array[i]=(char)(tem_array[i]-10);
}
tem=new String(tem_array);
textarea.append(tem) ;
}
}
else
{
JOptionPane.showMessageDialog(null,"密码错误") ;
}
}
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(null,"打开文件失败") ;
}
}
}
if(e.getSource()==menuitem21)
{
JOptionPane.showMessageDialog(null,"作者:洋芋"+'\n'+"联系方式(QQ):119508078") ;
}
if(e.getSource()==menuitem22)
{
JOptionPane.showMessageDialog(null,"功能:给自己的文档进行简单的处理,让一般人无法看到..(对于程序员,这是无效的)") ;
}
}
}
温馨提示:答案为网友推荐,仅供参考