java 文本编辑器 源码_学生作品:文本编辑器源代码(一)

文本编辑器源代码(一)上

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.*;

import java.awt.print.PrinterJob;

import java.io.BufferedOutputStream;

import java.io.BufferedWriter;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Reader;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.*;

import javax.swing.text.PlainDocument;

public class TxtEditor extends JFrame implements

ActionListener{

JMenuBar jb=new JMenuBar();//创建菜单条

JMenu f=new JMenu("文件(F)");//创建下拉菜单

JMenu e=new JMenu("编辑(E)");

JMenu o=new JMenu("设置(O)");

JMenu h=new JMenu("帮助(H)");

JTextArea t=new JTextArea();//创建文本域

JMenuItem open=new JMenuItem("打开(O)");//创建菜单里的元素

JMenuItem newf=new JMenuItem("新建(N)");

JMenuItem save=new JMenuItem("保存(S)");

JMenuItem saveas=new JMenuItem("另存为(A)");

JMenuItem print=new JMenuItem("打印(P)");

JMenuItem page=new JMenuItem("页面设置(U)");

JMenuItem exit=new JMenuItem("退出(X)");

JMenuItem copy=new JMenuItem("复制(C)");

JMenuItem paste=new JMenuItem("粘贴(P)");

JMenuItem cut=new JMenuItem("剪切(T)");

JMenuItem delete=new JMenuItem("删除(D)");

JMenuItem search=new JMenuItem("查找(F)");

JMenuItem selectAll=new JMenuItem("全选(A)");

JMenuItem date=new JMenuItem("日期/时间(S)");

JMenuItem font=new JMenuItem("字体(F)");

JMenuItem color=new JMenuItem("字体颜色(C)");

JMenuItem bcolor=new JMenuItem("背景颜色(B)");

JMenuItem help=new

JMenuItem("帮助主题(H)");

JMenuItem about=new JMenuItem("关于记事本(A)");

Label wel=new

Label("欢迎来到Java世界,让我们一起来体验它的乐趣!",Label.CENTER);//创建标签

Clipboard clipbd =

getToolkit().getSystemClipboard();//创建提取系统剪贴板的组件

PrinterJob prt = PrinterJob.getPrinterJob(); //创建链接系统打印组件

public TxtEditor(){

setLayout(new BorderLayout());//边界布局

addWindowListener(new WindowAdapter(){//关闭拥有框架的窗口

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

wel.setBackground(Color.green);

t.setBackground(new Color(199,237,204));

f.add(newf);//把菜单里的元素添加到菜单里

f.add(open);

f.add(save);

f.addSeparator();//添加下拉菜单的分割线

f.add(saveas);

f.add(print);

f.add(page);

f.addSeparator();

f.add(exit);

e.add(cut);

e.add(copy);

e.add(paste);

e.addSeparator();

e.add(search);

e.add(delete);

e.add(selectAll);

e.addSeparator();

e.add(date);

o.add(font);

o.add(color);

o.add(bcolor);

h.add(help);

h.add(about);

jb.add(f);//把菜单添加到菜单条里

jb.add(e);

jb.add(o);

jb.add(h);

jb.add(wel);

add("North",jb);//把组件(菜单条,文本域)添加到容器(框架)中

add("South",t);

add(new JScrollPane(t));//添加自动显示滚动条

//为菜单里的元素添加键盘事件监听,也就是快捷键

newf.setMnemonic('N');

newf.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));

open.setMnemonic('O');

open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

save.setMnemonic('S');

save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

saveas.setMnemonic('A');

saveas.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.ALT_MASK));

page.setMnemonic('U');

page.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));

print.setMnemonic('P');

print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));

exit.setMnemonic('X');

exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.ALT_MASK));

cut.setMnemonic('T');

cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

copy.setMnemonic('C');

copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

paste.setMnemonic('P');

paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));

delete.setMnemonic(KeyEvent.VK_DELETE);

delete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.ALT_MASK));

search.setMnemonic('F');

search.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));

selectAll.setMnemonic('A');

selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

date.setMnemonic('s');

date.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.ALT_MASK));

font.setMnemonic('F');

color.setMnemonic('C');

bcolor.setMnemonic('B');

help.setMnemonic('H');

about.setMnemonic('A');

//为菜单元素捕获行为事件

newf.addActionListener(new newL());

open.addActionListener(new openL());

save.addActionListener(new saveL());

saveas.addActionListener(new saveasL());

print.addActionListener(new printL());

page.addActionListener(new pageL());

exit.addActionListener(new exitL());

copy.addActionListener(new copyL());

cut.addActionListener(new cutL());

paste.addActionListener(new pasteL());

delete.addActionListener(new deleteL());

selectAll.addActionListener(new selectAllL());

search.addActionListener(new searchL());

date.addActionListener(new dateL());

color.addActionListener(this);

font.addActionListener(new fontL());

bcolor.addActionListener(this);

about.addActionListener(new aboutL());

help.addActionListener(new helpL());

setSize(640,480);

setLocation(200,150);

setVisible(true);

setTitle("记事本编辑器");

}

//构造行为监听器

class newL implements ActionListener { //新建监听

public void actionPerformed(ActionEvent e) {

t.setDocument(new PlainDocument());

}

}

class openL implements ActionListener{ //打开监听

public void actionPerformed(ActionEvent e)

{

JFileChooser fc=new JFileChooser();

int returnVal=fc.showDialog(TxtEditor.this, "Open file");

if(returnVal==JFileChooser.APPROVE_OPTION) {

String file=fc.getSelectedFile().getPath();

if(file == null) {

return;

}

try

{

Reader in = new FileReader(file);

char[] buff=new char[9999999];

int nch;

while((nch=in.read(buff,0,buff.length))!=-1) {

t.append(new String(buff,0,nch));

}

}

catch (IOException io) {

System.err.println("IOException: " + io.getMessage());

}

}

else {

return;

}

}

}

class saveL implements ActionListener { //保存监听

public void actionPerformed(ActionEvent e) {

JFileChooser fc=new JFileChooser();

int returnVal=fc.showSaveDialog(TxtEditor.this);

if(returnVal==JFileChooser.APPROVE_OPTION) {

String savefile=fc.getSelectedFile().getPath();

if(savefile == null) {

return;

}

else {

String docToSave = t.getText();

if(docToSave != null) {

FileOutputStream fstrm = null;

BufferedOutputStream ostrm = null;

try {

fstrm = new FileOutputStream(savefile);

ostrm = new BufferedOutputStream(fstrm);

byte[] bytes = null;

try {

bytes = docToSave.getBytes();

} catch(Exception e1) {

e1.printStackTrace();

}

ostrm.write(bytes);

} catch(IOException io)

{

System.err.println("IOException: " + io.getMessage());

}

finally{

try {

ostrm.flush();

fstrm.close();

ostrm.close();

} catch(IOException ioe) {

System.err.println("IOException: " + ioe.getMessage());

}

}

}

}

}

else {

return;

}

}

}

class saveasL implements ActionListener{//另存为监听

public void actionPerformed(ActionEvent e) {

try {

JFileChooser fileSaveAs = new JFileChooser();

fileSaveAs.setDialogTitle("另存为");

fileSaveAs.addChoosableFileFilter(fileSaveAs.getFileFilter());

if (fileSaveAs.APPROVE_OPTION !=

fileSaveAs.showSaveDialog(TxtEditor.this)) {

return;

}

BufferedWriter dataOut = new BufferedWriter(new BufferedWriter(new

FileWriter(fileSaveAs.getSelectedFile())));

String str = null;

str = t.getText();

dataOut.write(str);

dataOut.close();

} catch (IOException e1) {

System.out.println("另存文件时发现一个" + e1.toString() + "异常");

}

}

}

运行效果截图:

a4c26d1e5885305701be709a3d33442f.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值