java程序 记事本
2017-04-19 10:23
239 查看
/**
* 描述:记事本
*/
package cn.tx;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import javax.swing.JColorChooser;
public class MainFrame extends Frame implements ActionListener{
TextArea ta;
MenuItem miOpen,miNew,miSave,miSaveAs,miClose,miCopy,miPaste,miCut,miHelp,miColorFont,miColorBackground;
Menu mFile,mEdit,mHelp,mFormat;
MenuBar mb;
String s;
MainFrame(){
ta = new TextArea();
miOpen = new MenuItem("打开");
miNew = new MenuItem("新建");
miSave = new MenuItem("保存");
miSaveAs = new MenuItem("另存为");
miClose = new MenuItem("关闭");
miCopy = new MenuItem("复制");
miPaste = new MenuItem("粘贴");
miCut = new MenuItem("复切");
miColorFont = new MenuItem("字体颜色");
miColorBackground = new MenuItem("背景颜色");
miHelp = new MenuItem("帮助");
mFile = new Menu("文件");
mEdit = new Menu("编辑");
mHelp = new Menu("帮助");
mFormat = new Menu("格式");
mb = new MenuBar();
//文件
mFile.add(miNew);
mFile.add(miOpen);
mFile.insertSeparator(2);
mFile.add(miSave);
mFile.add(miSaveAs);
mFile.add(miClose);
//编辑
mEdit.add(miCopy);
mEdit.add(miPaste);
mEdit.add(miCut);
//格式
mFormat.add(miColorFont );
mFormat.add(miColorBackground);
//帮助
mHelp.add(miHelp);
mb.add(mFile);
mb.add(mEdit);
mb.add(mFormat);
mb.add(mHelp);
this.add(ta);
this.setMenuBar(mb);
//关闭
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
//文件
miOpen.addActionListener(this);
miNew.addActionListener(this);
miClose.addActionListener(this);
miSave.addActionListener(this);
miSaveAs.addActionListener(this);
//编辑
miCopy.addActionListener(this);
miPaste.addActionListener(this);
miCut.addActionListener(this);
s=null;
//格式
miColorFont.addActionListener(this);
miColorBackground.addActionListener(this);
//帮助
miHelp.addActionListener(this);
}
String currentFileName;
void saveAsFile() {
// TODO Auto-generated method stub
FileDialog filedialog_save = new FileDialog(this,"保存",FileDialog.SAVE);
filedialog_save.setVisible(true);
String dir=filedialog_save.getDirectory();
String name = filedialog_save.getFile();
currentFileName=dir+name;
saveFile();
}
void saveFile() {
// TODO Auto-generated method stub
if(currentFileName==null){
saveAsFile();
}else{
File file = new File(currentFileName);
try{
FileWriter fw = new FileWriter(file);
BufferedWriter out = new BufferedWriter(fw);
out.write(ta.getText());
out.flush();
fw.close();
}catch(Exception eo){
eo.printStackTrace();
}
}
}
public void actionPerformed(ActionEvent e){
//监听文件菜单项
if(e.getSource()==miNew){
ta.setText(" ");//添加一个空文本
}
if(e.getSource()==miClose){
System.exit(0);
}
if(e.getSource()==miOpen){
FileDialog filedialog_open = new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
filedialog_open.setVisible(true);
File file;
String dir = filedialog_open.getDirectory();
String name = filedialog_open.getFile();
file = new File(dir+name);
try{
FileReader fr = new FileReader(file);
BufferedReader in = new BufferedReader(fr);
String line = in.readLine();
String text = line+"\n";
while(line!=null){
text=text+line +"\n";
line=in.readLine();
}
ta.setText(text);
in.close();
fr.close();
}catch(Exception ie){
ie.printStackTrace();
}
}
if(e.getSource()==miSave){
saveFile();
}
if(e.getSource()==miSaveAs){
saveAsFile();
}
//监听编辑菜单项
if(e.getSource()==miCopy){
s=ta.getSelectedText();//返回文本组件所表示的文本
}
if(e.getSource()==miPaste){
int pos = ta.getCaretPosition();//获得光标位置
ta.insert(s, pos);//在文本区的指定位置插入指定文本
}
if(e.getSource()==miCut){
s=ta.getSelectedText();//获得被你选中的那部分文本,
int st = ta.getSelectionStart();//获得文本的开始位置
int en = ta.getSelectionEnd();//获得文本的结束位置
ta.replaceRange("", st, en);//用指定文本替换指定引索之间的文本(结束处的文本不会被替换)
}
//监听格式菜单项
if(e.getSource()==miColorFont){
//通过颜色对话框获得用户选择的颜色储存在颜色对象中
Color newColor=JColorChooser.showDialog(this,"调色板",Color.BLACK);
ta.setForeground(newColor);//设置字体颜色为用户指定颜色
}
if(e.getSource()==miColorBackground){
//通过颜色对话框获得用户选择的颜色储存在颜色对象中
Color newColor = JColorChooser.showDialog(this, "调色板", Color.BLACK);
ta.setBackground(newColor);//设置背景颜色为用户指定颜色
}
//监听帮助菜单项
if(e.getSource()==miHelp){
DHelp help = new DHelp(this,"帮助信息",false);
help.setSize(200, 200);//设置对话框大小
help.setVisible(true);//设置对话框可见
}
}
}
/**
* 描述:帮助对话框
*/
package cn.tx;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DHelp extends Dialog implements ActionListener{
Label lmessage;
Button bClose;
Panel p;
DHelp(Frame f,String s,boolean b) {
super(f,s,b);
lmessage = new Label("本程序由我本人完成");
bClose = new Button("关闭");
p= new Panel();//面板
GridLayout g = new GridLayout(2,1);//设置布局方式为网格型
this.setLayout(g);
this.add(lmessage);
this.add(p);
p.add(bClose);
bClose.addActionListener(this);
}
public void actionPerformed(ActionEvent arg0) {
// 设置不可见对话框
this.setVisible(false);
}
}
/*
* 描述:实现类
*/
package cn.tx;
public class Test {
public static void main(String[] args) {
MainFrame f = new MainFrame();
f.setTitle("记事本");
f.setSize(600,400);
f.setVisible(true);
}
}
* 描述:记事本
*/
package cn.tx;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import javax.swing.JColorChooser;
public class MainFrame extends Frame implements ActionListener{
TextArea ta;
MenuItem miOpen,miNew,miSave,miSaveAs,miClose,miCopy,miPaste,miCut,miHelp,miColorFont,miColorBackground;
Menu mFile,mEdit,mHelp,mFormat;
MenuBar mb;
String s;
MainFrame(){
ta = new TextArea();
miOpen = new MenuItem("打开");
miNew = new MenuItem("新建");
miSave = new MenuItem("保存");
miSaveAs = new MenuItem("另存为");
miClose = new MenuItem("关闭");
miCopy = new MenuItem("复制");
miPaste = new MenuItem("粘贴");
miCut = new MenuItem("复切");
miColorFont = new MenuItem("字体颜色");
miColorBackground = new MenuItem("背景颜色");
miHelp = new MenuItem("帮助");
mFile = new Menu("文件");
mEdit = new Menu("编辑");
mHelp = new Menu("帮助");
mFormat = new Menu("格式");
mb = new MenuBar();
//文件
mFile.add(miNew);
mFile.add(miOpen);
mFile.insertSeparator(2);
mFile.add(miSave);
mFile.add(miSaveAs);
mFile.add(miClose);
//编辑
mEdit.add(miCopy);
mEdit.add(miPaste);
mEdit.add(miCut);
//格式
mFormat.add(miColorFont );
mFormat.add(miColorBackground);
//帮助
mHelp.add(miHelp);
mb.add(mFile);
mb.add(mEdit);
mb.add(mFormat);
mb.add(mHelp);
this.add(ta);
this.setMenuBar(mb);
//关闭
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
//文件
miOpen.addActionListener(this);
miNew.addActionListener(this);
miClose.addActionListener(this);
miSave.addActionListener(this);
miSaveAs.addActionListener(this);
//编辑
miCopy.addActionListener(this);
miPaste.addActionListener(this);
miCut.addActionListener(this);
s=null;
//格式
miColorFont.addActionListener(this);
miColorBackground.addActionListener(this);
//帮助
miHelp.addActionListener(this);
}
String currentFileName;
void saveAsFile() {
// TODO Auto-generated method stub
FileDialog filedialog_save = new FileDialog(this,"保存",FileDialog.SAVE);
filedialog_save.setVisible(true);
String dir=filedialog_save.getDirectory();
String name = filedialog_save.getFile();
currentFileName=dir+name;
saveFile();
}
void saveFile() {
// TODO Auto-generated method stub
if(currentFileName==null){
saveAsFile();
}else{
File file = new File(currentFileName);
try{
FileWriter fw = new FileWriter(file);
BufferedWriter out = new BufferedWriter(fw);
out.write(ta.getText());
out.flush();
fw.close();
}catch(Exception eo){
eo.printStackTrace();
}
}
}
public void actionPerformed(ActionEvent e){
//监听文件菜单项
if(e.getSource()==miNew){
ta.setText(" ");//添加一个空文本
}
if(e.getSource()==miClose){
System.exit(0);
}
if(e.getSource()==miOpen){
FileDialog filedialog_open = new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
filedialog_open.setVisible(true);
File file;
String dir = filedialog_open.getDirectory();
String name = filedialog_open.getFile();
file = new File(dir+name);
try{
FileReader fr = new FileReader(file);
BufferedReader in = new BufferedReader(fr);
String line = in.readLine();
String text = line+"\n";
while(line!=null){
text=text+line +"\n";
line=in.readLine();
}
ta.setText(text);
in.close();
fr.close();
}catch(Exception ie){
ie.printStackTrace();
}
}
if(e.getSource()==miSave){
saveFile();
}
if(e.getSource()==miSaveAs){
saveAsFile();
}
//监听编辑菜单项
if(e.getSource()==miCopy){
s=ta.getSelectedText();//返回文本组件所表示的文本
}
if(e.getSource()==miPaste){
int pos = ta.getCaretPosition();//获得光标位置
ta.insert(s, pos);//在文本区的指定位置插入指定文本
}
if(e.getSource()==miCut){
s=ta.getSelectedText();//获得被你选中的那部分文本,
int st = ta.getSelectionStart();//获得文本的开始位置
int en = ta.getSelectionEnd();//获得文本的结束位置
ta.replaceRange("", st, en);//用指定文本替换指定引索之间的文本(结束处的文本不会被替换)
}
//监听格式菜单项
if(e.getSource()==miColorFont){
//通过颜色对话框获得用户选择的颜色储存在颜色对象中
Color newColor=JColorChooser.showDialog(this,"调色板",Color.BLACK);
ta.setForeground(newColor);//设置字体颜色为用户指定颜色
}
if(e.getSource()==miColorBackground){
//通过颜色对话框获得用户选择的颜色储存在颜色对象中
Color newColor = JColorChooser.showDialog(this, "调色板", Color.BLACK);
ta.setBackground(newColor);//设置背景颜色为用户指定颜色
}
//监听帮助菜单项
if(e.getSource()==miHelp){
DHelp help = new DHelp(this,"帮助信息",false);
help.setSize(200, 200);//设置对话框大小
help.setVisible(true);//设置对话框可见
}
}
}
/**
* 描述:帮助对话框
*/
package cn.tx;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DHelp extends Dialog implements ActionListener{
Label lmessage;
Button bClose;
Panel p;
DHelp(Frame f,String s,boolean b) {
super(f,s,b);
lmessage = new Label("本程序由我本人完成");
bClose = new Button("关闭");
p= new Panel();//面板
GridLayout g = new GridLayout(2,1);//设置布局方式为网格型
this.setLayout(g);
this.add(lmessage);
this.add(p);
p.add(bClose);
bClose.addActionListener(this);
}
public void actionPerformed(ActionEvent arg0) {
// 设置不可见对话框
this.setVisible(false);
}
}
/*
* 描述:实现类
*/
package cn.tx;
public class Test {
public static void main(String[] args) {
MainFrame f = new MainFrame();
f.setTitle("记事本");
f.setSize(600,400);
f.setVisible(true);
}
}
相关文章推荐
- 用java启动记事本程序,并输入内容
- 今天没怎么写程序,就用JAVA调了下记事本,计算器,嘿嘿,写一个代码也是热身呀~~~
- java书写的记事本程序
- java学习之用记事本写简单的HelloWorld程序
- 关于Netbean Java程序下面读取记事本文件中文乱码
- 完整记事本程序(java)
- 用java写一个小的记事本程序
- 配置java开发环境及使用记事本编写第一个最简单的java程序
- 怎么运行用记事本写的java程序
- 用记事本编写java程序
- 用java启动记事本程序,并输入内容
- 用记事本编写Java程序时 保存编码问题
- java记事本小程序
- 一个简单的java记事本程序
- 如何运行用记事本写的java程序
- java调用其它程序之记事本
- Java 记事本程序
- java实现的简单记事本程序
- JAVA GUI PART1 记事本程序 极其简易版
- 用记事本写的java程序引用jar文件