JAVA编写的记事本
package demo1;
import java.io.*;
import java.awt.BorderLayout;
import java.awt.event.*;
import mypackage.FileHelper;
import mypackage.WriteStyle;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.plaf.FileChooserUI;
public class UIdemo02 extends JFrame implements ActionListener
{
//窗口初始大小
int width = 500,height = 400;
JPanel panel;
JMenuBar bar;
JMenu fileMenu,editMenu,helpMenu;
JMenuItem OpenO,NewN,SaveS,SaveasA,CutT,CopyC,PasteP,AboutA;
JTextArea textArea = null; File tempFile = null;
JScrollPane jscroll;
public UIdemo02()
{
//构造方法
this.setTitle("新概念记事本V1.0版本");
this.setSize(width,height);
//获得窗口面板容器
panel = (JPanel)this.getContentPane();
//创建窗口菜单条
bar = new JMenuBar();
fileMenu = new JMenu("文件F");//顶层菜单
fileMenu.setMnemonic('F'); //设定快捷键操作
editMenu = new JMenu("编辑E");
editMenu.setMnemonic('E');
helpMenu = new JMenu("帮助H");
helpMenu.setMnemonic('H');
//创建子菜单项
OpenO = new JMenuItem("打开O");
OpenO.setMnemonic('O');
NewN = new JMenuItem("新建N");
NewN.setMnemonic('N');
SaveS = new JMenuItem("保存S");
SaveS.setMnemonic('S');
SaveasA = new JMenuItem("另存A");
SaveasA.setMnemonic('A');
CutT = new JMenuItem("剪切C");
CutT.setMnemonic('t');
CopyC = new JMenuItem("复制C");
CopyC.setMnemonic('C');
PasteP = new JMenuItem("粘贴P");
PasteP.setMnemonic('P');
AboutA = new JMenuItem("关于A");
AboutA.setMnemonic('A');
fileMenu.add(OpenO);
fileMenu.add(NewN);
fileMenu.add(SaveS);
fileMenu.add(SaveasA);
//添加菜单到工具条
bar.add(fileMenu);
editMenu.add(CutT);
editMenu.add(CopyC);
editMenu.add(PasteP);
bar.add(editMenu);
helpMenu.add(AboutA);
bar.add(helpMenu);
//为文本框添加滚动条
JPanel jpanel=new JPanel(new BorderLayout());
jpanel.setBounds(10, 100, 200, 100);
textArea = new JTextArea();
textArea.setEditable(false);//不能编辑
jscroll=new JScrollPane(textArea);
jpanel.add(jscroll);
panel.add("North",bar);
panel.add("Center", jpanel);
this.InitListener();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
NewS_click(null);
}
/**
* 初始化窗体控件监听器
*/
private void InitListener()
{
//打开
OpenO.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
OpenO_click(arg0);
}
});
//新建
NewN.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
NewS_click(arg0);
}
});
//保存
SaveS.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
SaveS_click(e);
}
});
//另存
SaveasA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
SaveasA_click(e);
}
});
AboutA.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
AboutA_click(arg0);
}
});
}
//打开事件处理
public void OpenO_click(ActionEvent evt)
{
//文件打开对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("打开记事文件");
jfc.showOpenDialog(panel);
tempFile=jfc.getSelectedFile();
textArea.setText(FileHelper.ReadAllText(tempFile.getAbsolutePath()));
textArea.setEditable(true);
}
//新建事件处理
public void NewS_click(ActionEvent evt)
{
//处理新建
tempFile=null;
textArea.setEditable(true);
textArea.setText(null);
}
//保存事件处理
public void SaveS_click(ActionEvent evt)
{
//检查是否有数据保存
if(textArea.getText().length()<=0)
{
JOptionPane.showMessageDialog(panel,"没有数据可用于保存");
return;
}
//覆盖、创建标识
int flag=0;
//是否打开文件
if(tempFile==null)
{
//文件打开对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("保存记事文件");
jfc.showSaveDialog(panel);
tempFile=jfc.getSelectedFile();
flag=1;//新建
}
WriteStyle wstyle=flag==0?WriteStyle.overlaid:WriteStyle.create;
//将数据存入磁盘文件
boolean ret=FileHelper.WriteAllText(textArea.getText(), tempFile.getAbsolutePath(),wstyle);
if(ret==false)
{
JOptionPane.showMessageDialog(panel,"数据保存失败");
}
}
//另存事件处理
public void SaveasA_click(ActionEvent evt)
{
//检查是否有数据保存
if(textArea.getText().length()<=0)
{
JOptionPane.showMessageDialog(panel,"没有数据可用于保存");
return;
}
//选择文件
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("另存为");
jfc.showSaveDialog(panel);
tempFile=jfc.getSelectedFile();
String filepath=tempFile.getAbsolutePath();
//选择文件是否已经存在
if(FileHelper.FileExists(filepath))
{
int ret= JOptionPane.showConfirmDialog(panel, "文件已存在,是否覆盖?");
JOptionPane.showMessageDialog(null, ret);
if(ret==0)
{
//覆盖
boolean bret= FileHelper.WriteAllText(textArea.getText(), filepath, WriteStyle.create);
if(!bret)
{
JOptionPane.showConfirmDialog(panel, "数据保存失败");
}
}
}
//将数据存入磁盘文件
boolean bret=FileHelper.WriteAllText(textArea.getText(), filepath, WriteStyle.create);
if(!bret)
{
JOptionPane.showConfirmDialog(panel, "数据保存失败");
}
}
//关于事件处理
public void AboutA_click(ActionEvent evt)
{
tempFile=null;
textArea.setText("新概念记事本V1.0\nQQ:1533696518\n编写思路参考至http://zhidao.baidu.com/question/217267049.html");
textArea.setEditable(false);
}
public void actionPerformed(ActionEvent event)
{
}
public static void main(String []args)
{ //主函数
new UIdemo02();
}
}
其中用到的FileHelper类源码在文章列表中