求java记事本教程

我想写一个用java写一个记事本,但不知道从何下手,请大家帮我找一个教程,我想先看一下,谢谢

我自己写的一个可简单加密码的记事本...加密码方法很简单
此记事本保存的时候应该保存为*.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,"功能:给自己的文档进行简单的处理,让一般人无法看到..(对于程序员,这是无效的)") ;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第3个回答  2009-03-23
还加密,多此一举,到网上搜一个,看看源码,然后自己背着写一遍,再试着扩展功能!