java程序 记事本

本文档展示了如何使用Java编程创建一个简单的记事本程序,包括一个帮助对话框(DHelp 类),该对话框包含一个“关闭”按钮,并在点击时使对话框不可见。在主程序(Test 类)中,创建了一个主窗口(MainFrame),设置标题和大小,并使其可见。
摘要由CSDN通过智能技术生成
/**
 * 描述:记事本
 */
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);
}


}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值