今天准备分析一个java的记事本
2005-06-19 13:37
375 查看
先附上源码:
import java.lang.*;
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
public class EditorFrame extends Frame implements ActionListener
{
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 EditorFrame( ) // EditorFrame initialzation
{
setTitle("NotePad");
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");
}
}
public static void main(String[] args)
{
Frame frame = new EditorFrame();
frame.show();
}
}
本程序的主要按如下思路编写的:1初始化一个编辑框的类,在其中添加需要用到的控件.2在编辑框中添加各个需要用到的各个组件,事实上在第一步中只是一个组件声明,在这一步中才为组件分配内存空间.在本步中实现窗体的关闭功能.3添加各个组件的事件.实现各自的功能.4实现编辑本的的输入输出功能.5设立mainmethord.
MenuBar:是一个菜单条,但是不能直接用,先离开了,以后会继续写
import java.lang.*;
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
public class EditorFrame extends Frame implements ActionListener
{
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 EditorFrame( ) // EditorFrame initialzation
{
setTitle("NotePad");
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");
}
}
public static void main(String[] args)
{
Frame frame = new EditorFrame();
frame.show();
}
}
本程序的主要按如下思路编写的:1初始化一个编辑框的类,在其中添加需要用到的控件.2在编辑框中添加各个需要用到的各个组件,事实上在第一步中只是一个组件声明,在这一步中才为组件分配内存空间.在本步中实现窗体的关闭功能.3添加各个组件的事件.实现各自的功能.4实现编辑本的的输入输出功能.5设立mainmethord.
MenuBar:是一个菜单条,但是不能直接用,先离开了,以后会继续写
相关文章推荐
- 今天的作业 java IO练习,一个山寨记事本,没什么技术含量
- JAVA实现一个简单的代数运算语言编译器(二)--词法分析准备
- 今天没怎么写程序,就用JAVA调了下记事本,计算器,嘿嘿,写一个代码也是热身呀~~~
- 用记事本写一个简单的java程序
- Java 记事本——今天添加了简单的插入时间和自动换行菜单的实现
- 一个简单的java记事本程序
- 记事本 + 命令行 + Tomcat + JDK 写一个简单的JavaWeb程序
- 对于framework的目录结构分析以及简单的添加一个java层服务
- 做一个合格的程序猿之浅析Spring IoC源码(一)分析前的准备和思考
- 一个简单的Java IO流写的记事本
- 在java bean中对一个java文件进行语法分析 的方法
- 如果把准备结婚作为一个项目,应该怎样开展需求分析
- 一个6年的Java程序员,针对分布式锁的案例分析和总结
- JAVA学习35_一个面试官对面试问题的分析_Java垃圾回收
- CognitiveJ一个Java的人脸图像识别开源分析库
- 今天发现一个java做的APPLET,超炫!
- Ex32.java 题目:取一个整数a从右端开始的4~7位。 程序分析:可以这样考虑:
- 今天做了一个分析MFT碎片的脚本
- 一个Java进程直接死掉的问题分析
- 【转】【转】一个一年工作经验的java工程师从工作初到今天的所有收藏的学习java的网站(有些很经典