简单记事本java源码实例
2014-11-25 11:35
549 查看
本文实例讲述了简单记事本java实现代码。分享给大家供大家参考。具体如下:
完整代码如下:
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程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 实例源码1:利用Java调用可执行命令并取得其返回值
- 实例源码3:利用Java调用可执行命令并取得其返回值
- Android、Java、JS上百实例源码
- Java 对象序列化详解以及实例实现和源码下载
- java.util.concurrent 用法实例详解 -中的java源码
- 实例源码:利用Java调用可执行命令
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- Java重载和重写(覆盖)的区别--源码实例
- Java对象赋值原理详解(下)附实例源码
- Struts2+spring2+hibernate3实例源码-java源码
- (转)Java并发编程总结---Hadoop核心源码实例解读
- 以简求快 Java快速开发框架LML配置及实例源码
- Android apk安装过程及Java、JNI读取安装包内assets资源文件的两种方法(附源码实例)
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- 实例源码2:利用Java调用可执行命令并取得其返回值
- 以简求快 Java快速开发框架LML配置及实例源码
- 【面向对象课程项目:纸牌】Java实例学习(二):优秀源码与自己模型的对比
- [Java] SSH框架笔记_框架分析+环境搭建+实例源码下载
- JAVA上百实例源码以及开源项目