简单记事本java源码实例
作者:shichen2014 时间:2023-11-26 02:03:17
本文实例讲述了简单记事本java实现代码。分享给大家供大家参考。具体如下:
完整代码如下:
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
public class Main extends Frame implements ActionListener {
private static final long serialVersionUID = 1L;
TextArea textArea = new TextArea();
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
MenuItem newItem = new MenuItem("New");
MenuItem openItem = new MenuItem("Open");
MenuItem saveItem = new MenuItem("Save");
MenuItem saveAsItem = new MenuItem("Save As");
MenuItem exitItem = new MenuItem("Exit");
Menu editMenu = new Menu("Edit");
MenuItem selectItem = new MenuItem("Select All");
MenuItem copyItem = new MenuItem("Copy");
MenuItem cutItem = new MenuItem("Cut");
MenuItem pasteItem = new MenuItem("Paste");
String fileName = null;
Toolkit toolKit=Toolkit.getDefaultToolkit();
Clipboard clipBoard=toolKit.getSystemClipboard();
private FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD);
private FileDialog saveAsFileDialog = new FileDialog(this,"Save File As",FileDialog.SAVE);
public Main(){
setTitle("记事本程序-by Jackbase");
setFont(new Font("Times New Roman",Font.PLAIN,12));
setBackground(Color.white);
setSize(400,300);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
editMenu.add(selectItem);
editMenu.addSeparator();
editMenu.add(copyItem);
editMenu.add(cutItem);
editMenu.add(pasteItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
setMenuBar(menuBar);
add(textArea);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveAsItem.addActionListener(this);
exitItem.addActionListener(this);
selectItem.addActionListener(this);
copyItem.addActionListener(this);
cutItem.addActionListener(this);
pasteItem.addActionListener(this);
}
public void actionPerformed(ActionEvent e) { //监听事件
Object eventSource = e.getSource();
if(eventSource == newItem){
textArea.setText("");
}else if(eventSource == openItem){
openFileDialog.show();
fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName != null)
readFile(fileName);
}else if (eventSource == saveItem){
if(fileName != null)
writeFile(fileName);
}else if(eventSource == saveAsItem){
saveAsFileDialog.show();
fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();
if (fileName!= null)
writeFile(fileName);
}else if(eventSource == selectItem){
textArea.selectAll();
}else if(eventSource == copyItem){
String text=textArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
}else if(eventSource == cutItem){
String text=textArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource == pasteItem){
Transferable contents=clipBoard.getContents(this);
if(contents==null) return;
String text;
text="";
try{
text=(String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception exception){
}
textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource == exitItem){
System.exit(0);
}
}
public void readFile(String fileName){ //读取文件处理
try{
File file = new File(fileName);
FileReader readIn = new FileReader(file);
int size = (int)file.length();
int charsRead = 0;
char[] content = new char[size];
while(readIn.ready())
charsRead += readIn.read(content, charsRead, size - charsRead);
readIn.close();
textArea.setText(new String(content, 0, charsRead));
}
catch(IOException e){
System.out.println("Error opening file");
}
}
public void writeFile(String fileName){ //写入文件处理
try{
File file = new File (fileName);
FileWriter writeOut = new FileWriter(file);
writeOut.write(textArea.getText());
writeOut.close();
}
catch(IOException e){
System.out.println("Error writing file");
}
}
@SuppressWarnings("deprecation")
public static void main(String[] args){
Frame frame = new Main(); //创建对象
frame.show(); //是对象显示
}
}
运行结果如下图所示:
希望本文所述对大家的java程序设计有所帮助。
标签:记事本,java
0
投稿
猜你喜欢
springboot+chatgpt+chatUI Pro开发智能聊天工具的实践
2023-10-30 05:38:03
SpringBoot如何动态改变日志级别
2021-08-29 02:32:17
java实现统计字符串中字符及子字符串个数的方法示例
2022-10-14 13:47:40
C#获取Description特性的扩展类详解
2022-06-04 13:27:24
10道springboot常见面试题
2023-09-02 03:02:22
分析设计模式之模板方法Java实现
2022-01-20 21:02:22
Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果
2021-08-21 21:16:40
Java语言之LinkedList和链表的实现方法
2023-12-19 20:18:59
Android自定义View实现垂直时间轴布局
2022-12-12 15:21:16
Spring Security OAuth2 实现登录互踢的示例代码
2023-09-04 19:09:28
Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(二)
2022-11-14 18:37:22
Java Swing中JTable渲染器与编辑器用法示例
2022-11-02 09:23:13
java三个环境变量配置简单教程
2023-11-28 20:45:30
springboot整合mybatis的超详细过程(配置模式+注解模式)
2023-10-03 09:54:03
Android四大组件之Activity详解
2022-08-22 00:00:49
SQLite在C#中的安装与操作技巧
2023-04-19 08:31:12
详解在LINUX上部署带有JAR包的JAVA项目
2022-12-30 21:07:14
SpringBoot 转发请求至指定页面的操作方法
2022-11-13 17:23:12
Mybatis源码解析之事务管理
2023-01-14 10:59:34
springboot jpa 延迟加载问题的2种解决
2021-10-14 03:05:20