版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuewen2008/article/details/81910520
主要界面
主要功能
1、用户点击打开按钮可以打开电脑中的相应文件,文件内容可以在记事本界面中显示
2、用户修改文件内容点击保存可以保存修改后的文件内容。
3、用户点击关于查看记事本版本信息。
实现代码
/*
* 记事本开发:
* 主要功能:打开文件,编辑后可以保存
* 需要界面加功能开发
* */
package com.fox.test9;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
public class NotePad extends JFrame implements ActionListener{
//定义需要的组件
JTextArea jta=null;
//菜单栏
JMenuBar jmb =null;
JMenu jmFile =null;
JMenu jmEdit =null;
JMenu jmStyle =null;
JMenu jmAbout =null;
//文件子菜单
JMenuItem jmiNew =null;
JMenuItem jmiOpen =null;
JMenuItem jmiSave =null;
JMenuItem jmiExit =null;
//编辑子菜单
JMenuItem jmiCopy =null;
JMenuItem jmiCut =null;
JMenuItem jmiPaste =null;
JMenuItem jmiAbout =null;
public static void main(String[] args) {
// TODO Auto-generated method stub
NotePad np = new NotePad();
}
public NotePad() {
jta = new JTextArea();
jmb = new JMenuBar();
//创建一级菜单
jmFile = new JMenu("文件");
jmEdit = new JMenu("编辑");
jmStyle = new JMenu("格式");
jmAbout = new JMenu("关于");
//创建一级菜单 文件的 子菜单
jmiNew = new JMenuItem("新建");
jmiOpen =new JMenuItem("打开");
jmiSave = new JMenuItem("保存");
jmiExit = new JMenuItem("退出");
//创建一级菜单 编辑的子菜单
jmiCopy = new JMenuItem("复制");
jmiCut =new JMenuItem("剪切");
jmiPaste = new JMenuItem("粘贴");
//创建一级菜单 关于的子菜单
jmiAbout = new JMenuItem("关于记事本");
//添加组件
this.add(jta);
//添加菜单栏
this.setJMenuBar(jmb);
//添加一级菜单项
jmb.add(jmFile);
jmb.add(jmEdit);
jmb.add(jmStyle);
jmb.add(jmAbout);
//添加一级菜单文件的子菜单
jmFile.add(jmiNew);
jmFile.add(jmiOpen);
jmFile.add(jmiSave);
jmFile.add(jmiExit);
//添加一级菜单编辑的子菜单
jmEdit.add(jmiCopy);
jmEdit.add(jmiCut);
jmEdit.add(jmiPaste);
//添加一级菜单关于的子菜单
jmAbout.add(jmiAbout);
//注册点击监听事件
//注册打开按钮监听
jmiOpen.addActionListener(this);
jmiOpen.setActionCommand("open");
//注册保存按钮监听
jmiSave.addActionListener(this);
jmiSave.setActionCommand("save");
//注册退出按钮监听
jmiExit.addActionListener(this);
jmiExit.setActionCommand("exit");
//注册关于按钮的监听事件
jmiAbout.addActionListener(this);
jmiAbout.setActionCommand("about");
//设置组件
this.setTitle("记事本");//设置标题
this.setLocation(200, 200);//设置界面起始位置
this.setSize(400,500);//界面大小
this.setVisible(true);//显示界面
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时保证jvm虚拟机也退出,关闭时节省系统资源
}
//监听事件处理函数
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand().equals("open"))
{
//文件选择类
JFileChooser jfc = new JFileChooser();
jfc.setDialogTitle("打开文件...");
jfc.showOpenDialog(null);
jfc.setVisible(true);
//得到用户选择的文件绝对路径
String filename =jfc.getSelectedFile().getAbsolutePath();
//System.out.println(filename);
//使用BufferedReader类读取文件内容显示到文本框中
BufferedReader br =null;
FileReader fr= null;
//FileWriter fw=null;
try {
fr = new FileReader(filename);
br = new BufferedReader(fr);
//读取文件
String s="";
String allString="";
while((s=br.readLine())!=null) {
allString+=s+"\r\n";
jta.setText(allString);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else if(arg0.getActionCommand().equals("save"))
{
//文件选择类
JFileChooser jfc = new JFileChooser();
jfc.setDialogTitle("保存文件...");
jfc.showSaveDialog(null);
jfc.setVisible(true);
//得到用户选择的文件绝对路径
String filename =jfc.getSelectedFile().getAbsolutePath();
//使用BufferedWriter类将文本框中的内容写入到文件中
BufferedWriter bw =null;
FileWriter fw=null;
try {
fw= new FileWriter(filename);
bw = new BufferedWriter(fw);
bw.write(jta.getText());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else if(arg0.getActionCommand().equals("exit"))
{
//System.out.println("exit");
System.exit(0);
}else if(arg0.getActionCommand().equals("about"))
{
//System.out.println("about");
JDialog dialog = new JDialog(this, "关于记事本", true);
JLabel jlb = new JLabel();
jlb.setText("这是记事本1.0版");
dialog.add(jlb);
dialog.setSize(250, 150);
dialog.setResizable(false);
dialog.setVisible(true);
}
}
}