您的位置:首页 > 编程语言 > Java开发

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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础编程