`
- 浏览:
48880 次
- 性别:
- 来自:
济南
-
package test;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import javax.swing.*;
public class EditTest {
public static void main(String[] args){
EditFrame frame = new EditFrame();
frame.setVisible(true);
}
}
class EditFrame extends Frame implements ActionListener{
MenuBar menuBar = new MenuBar();
Menu file = new Menu("File");
Menu edit = new Menu("Edit");
Menu help = new Menu("Help");
TextArea textArea = new TextArea();
String fileName = null;
MenuItem[] menuItem = {
new MenuItem("new"),
new MenuItem("open"),
new MenuItem("save"),
new MenuItem("exit"),
new MenuItem("select all"),
new MenuItem("copy"),
new MenuItem("cut"),
new MenuItem("paste")};
MenuItem helpItem = new MenuItem("help");
private FileDialog openFileDialog =
new FileDialog(this,"Open File",FileDialog.LOAD);
private FileDialog saveFileDialog =
new FileDialog(this,"Save File",FileDialog.SAVE);
private Clipboard clipboard;
public EditFrame(){
setTitle("记事本");
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension sizeScreen = kit.getScreenSize();
clipboard = kit.getSystemClipboard();
int width = sizeScreen.width;
int height = sizeScreen.height;
setSize(width/2,height/2);
setLocation(width/4,height/4);
//添加菜单
menuBar.add(file);
menuBar.add(edit);
menuBar.add(help);
for(int i = 0;i < 4;i++){
file.add(menuItem[i]);
edit.add(menuItem[i+4]);
}
help.add(helpItem);
add(textArea);
setMenuBar(menuBar);
//退出事件响应
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
e.getWindow().dispose();
System.exit(0);
}
});
for(int i = 0;i<menuItem.length;i++){
menuItem[i].addActionListener(this);
}
}
public void actionPerformed(ActionEvent e){
Object eventSourse = e.getSource();
if(eventSourse == menuItem[0]){
textArea.setText("");
}
else if(eventSourse == menuItem[1]){
openFileDialog.setVisible(true);
fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName != null)
{
openFile(fileName);
}
}
else if(eventSourse == menuItem[2]){
saveFileDialog.setVisible(true);
fileName = saveFileDialog.getDirectory()+saveFileDialog.getFile();
if(fileName!=null){
writeFile(fileName);
}
}
else if(eventSourse == menuItem[3]){
System.exit(0);
}
else if(eventSourse == menuItem[4]){
textArea.selectAll();
}
else if(eventSourse == menuItem[5]){
String text = textArea.getSelectedText();
StringSelection selection= new StringSelection(text);//copy
clipboard.setContents(selection,null);
}
else if(eventSourse == menuItem[6]){
String text = textArea.getSelectedText();
StringSelection selection = new StringSelection(text);
clipboard.setContents(selection,null); //cut
textArea.replaceText("",textArea.getSelectionStart(),
textArea.getSelectionEnd());
}
else if(eventSourse == menuItem[7]){
Transferable contents = clipboard.getContents(this);
if(contents==null)
return;
String text;
text="";
try{
text = (String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception ex){}
textArea.replaceText(text,
textArea.getSelectionStart(),textArea.getSelectionEnd());
}
}
public void openFile(String fileName){
//File f = new File(fileName);
try{
File file = new File(fileName);
FileReader readIn = new FileReader(file);
int size = (int)file.length();//文件的内容长度,为long型
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(Exception e)
{
System.out.println("Error opening file!");
}
}
public void writeFile(String fileName){
try{
File f = new File(fileName);
FileWriter write = new FileWriter(f);
write.write(textArea.getText());
write.close();
}catch(Exception e){
System.out.println("Erroe saving file!");
}
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
java记事本完整程序可运行,java课需要资源的直接下载
JAVA手机记事本,是很好用的JAVA手机记事本,VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV。经验证,金立手机L18可用。JAVA手机记事本,是很好用的JAVA手机记事本,...
Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本Java日期记事本
JAVA 记事本 实现各项功能 JAVA 记事本 实现各项功能 JAVA 记事本 实现各项功能
自己写的小玩意。大家有兴趣的可以用用。仿window的记事本,还有不完整的地方。期待高手补充。本物件已封装。本机有了jdk双击文件就可以运行。
用JAVA 写记事本的部分代码,值得借鉴
java记事本java记事本java记事本java记事本java记事本java记事本java记事本
java记事本java记事本java记事本java记事本
Java制作记事本 Java制作记事本 Java制作记事本 Java制作记事本Java制作记事本 Java制作记事本
基于java的记事本基于java的记事本基于java的记事本基于java的记事本基于java的记事本
java_记事本的设计与实现报告.pdf
JAVA简单记事本程序设计实验报告(带源码) 课题:学生成绩管理 4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项 文件 新建、打开、保存、退出 编辑 剪切、拷贝、粘贴、查找 帮助 关于 5.实现文件和编辑...
java写的记事本程序源代码,界面简洁大方,模仿实现了Windows记事本的基本功能!
用java写的记事本源码,功能还算比较全,很容易看懂
用java写的记事本程序,跟操作系统的记事本很相似
java 记事本java 记事本java 记事本java 记事本java 记事本java 记事本java 记事本java 记事本
纯Java编写的记事本 包含源码 实现了许多功能例如:定时保存、日历、字数统计,工具栏等一些功能。特别适合初学swing的人员阅读。
具备简单的记事本的功能。复制,黏贴,设置字体,大小等,是一个小型的记事本。
java带记事本日历.rarjava带记事本日历.rarjava带记事本日历.rarjava带记事本日历.rar