Java编写的文本编辑器.docx

上传人:b****8 文档编号:9189707 上传时间:2023-05-17 格式:DOCX 页数:23 大小:36.85KB
下载 相关 举报
Java编写的文本编辑器.docx_第1页
第1页 / 共23页
Java编写的文本编辑器.docx_第2页
第2页 / 共23页
Java编写的文本编辑器.docx_第3页
第3页 / 共23页
Java编写的文本编辑器.docx_第4页
第4页 / 共23页
Java编写的文本编辑器.docx_第5页
第5页 / 共23页
Java编写的文本编辑器.docx_第6页
第6页 / 共23页
Java编写的文本编辑器.docx_第7页
第7页 / 共23页
Java编写的文本编辑器.docx_第8页
第8页 / 共23页
Java编写的文本编辑器.docx_第9页
第9页 / 共23页
Java编写的文本编辑器.docx_第10页
第10页 / 共23页
Java编写的文本编辑器.docx_第11页
第11页 / 共23页
Java编写的文本编辑器.docx_第12页
第12页 / 共23页
Java编写的文本编辑器.docx_第13页
第13页 / 共23页
Java编写的文本编辑器.docx_第14页
第14页 / 共23页
Java编写的文本编辑器.docx_第15页
第15页 / 共23页
Java编写的文本编辑器.docx_第16页
第16页 / 共23页
Java编写的文本编辑器.docx_第17页
第17页 / 共23页
Java编写的文本编辑器.docx_第18页
第18页 / 共23页
Java编写的文本编辑器.docx_第19页
第19页 / 共23页
Java编写的文本编辑器.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java编写的文本编辑器.docx

《Java编写的文本编辑器.docx》由会员分享,可在线阅读,更多相关《Java编写的文本编辑器.docx(23页珍藏版)》请在冰点文库上搜索。

Java编写的文本编辑器.docx

Java编写的文本编辑器

界面:

代码(编译后可直接运行):

//简单的类似记事本的文档编辑器

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.io.*;

importjava.awt.font.*;

importjavax.swing.undo.UndoManager;

publicclassMyTxt

{

publicstaticvoidmain(String[]args)

{

Aframeframe=newAframe();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

classAframeextendsJFrame

{

publicAframe()

{

setTitle("我的记事本");

setSize(WIDTH,HEIGHT);

ContainercontentPane=getContentPane();

JPaneltxtPanel=newJPanel();

JPanelcomboxPanel=newJPanel();

JPaneltextPanel=newJPanel();

txtArea=newJTextArea("",17,40);

JScrollPanescrollPane=newJScrollPane(txtArea);

txtPanel.add(scrollPane);

contentPane.add(comboxPanel,BorderLayout.NORTH);

contentPane.add(txtPanel);

contentPane.add(textPanel,BorderLayout.SOUTH);

//Caidanlan:

添加主菜单并设置快捷键

JMenuBarmenuBar=newJMenuBar();

setJMenuBar(menuBar);

fileMenu=newJMenu("文件(F)");

editMenu=newJMenu("编辑(E)");

typeMenu=newJMenu("格式(O)");

viewMenu=newJMenu("查看(V)");

helpMenu=newJMenu("帮助(H)");

aboutMenu=newJMenu("关于(A)");

fileMenu.setMnemonic('F');

editMenu.setMnemonic('E');

typeMenu.setMnemonic('O');

viewMenu.setMnemonic('V');

helpMenu.setMnemonic('H');

aboutMenu.setMnemonic('A');

menuBar.add(fileMenu);

menuBar.add(editMenu);

menuBar.add(typeMenu);

menuBar.add(viewMenu);

menuBar.add(aboutMenu);

menuBar.add(helpMenu);

//wenjian“文件”菜单的子菜单添加以及设置加速器,监听器

aa=fileMenu.add(newShowAction("新建"));

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

ab=fileMenu.add(newShowAction("打开"));

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

ac=fileMenu.add(newShowAction("保存"));

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

ad=fileMenu.add(newShowAction("另存为"));

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

fileMenu.addSeparator();

ae=fileMenu.add(newShowAction("页面设置"));

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

af=fileMenu.add(newShowAction("打印"));

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

fileMenu.addSeparator();//分割线

ag=fileMenu.add(newShowAction("退出"));

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

//bianji“编辑”菜单的子菜单添加以及设置加速器,监听器

ah=editMenu.add(newShowAction("撤消"));

editMenu.addSeparator();

ah.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));

ai=editMenu.add(newShowAction("剪切"));

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

aj=editMenu.add(newShowAction("复制"));

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

an=editMenu.add(newShowAction("粘贴"));

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

ak=editMenu.add(newShowAction("删除"));

ak.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));

editMenu.addSeparator();

al=editMenu.add(newShowAction("查找"));

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

am=editMenu.add(newShowAction("全选"));

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

//geshi“格式”菜单的子菜单添加以及设置加速器,监听器

zdhh=newJMenu("自动换行(L)");

zdhh.setMnemonic('L');

typeMenu.add(zdhh);

ButtonGroupgroup=newButtonGroup();

xz=newJRadioButtonMenuItem("选择");

xz.addActionListener(newShowAction("选择"));

xz.setSelected(true);

qxxz=newJRadioButtonMenuItem("取消");

qxxz.addActionListener(newShowAction("取消"));

qxxz.setSelected(true);

group.add(xz);group.add(qxxz);

zdhh.add(xz);zdhh.add(qxxz);

bj=typeMenu.add(newShowAction("背景颜色"));

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

zt=typeMenu.add(newShowAction("字体"));

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

//字体弹出框中的“确定”按钮

que=newButton("确定");

que.addActionListener(newboxlistener());

//chakan“查看”菜单的子菜单添加以及设置加速器,监听器

ztl=viewMenu.add(newShowAction("状态栏"));

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

//guanyu“关于”菜单的子菜单添加以及设置加速器,监听器

zzxx=aboutMenu.add(newShowAction("作者信息"));

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

bq=aboutMenu.add(newShowAction(""));

bq.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));

sm=aboutMenu.add(newShowAction("声明"));

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

//bangzhu“帮助”菜单的子菜单添加以及设置加速器,监听器

shm=helpMenu.add(newShowAction("说明"));

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

//文本框底部工具栏的设置

toolbar2=newJToolBar();

textPanel.add(toolbar2);

text1=newJTextField("就绪",10);

text2=newJTextField("欢迎使用该记事本!

",10);

text3=newJTextField("",10);

text4=newJTextField("",10);

textPanel.setLayout(newGridLayout(1,4));

toolbar2.add(text1);

toolbar2.add(text2);

toolbar2.add(text3);

toolbar2.add(text4);

text1.setEditable(false);

text2.setEditable(false);

text3.setEditable(false);

text4.setEditable(false);

//组合框的设置

//字体

zitiLabel=newJLabel("字体");comboxPanel.add(zitiLabel);

Stringzit[]={"宋体","华文行楷","楷体","黑体","幼圆"};

zitibox=newJComboBox(zit);

comboxPanel.add(zitibox);

//颜色

yanseLabel=newJLabel("颜色");comboxPanel.add(yanseLabel);

Stringyans[]={"黑色","蓝色","绿色","红色","黄色","蓝绿色","浅灰色"};

yansebox=newJComboBox(yans);

comboxPanel.add(yansebox);

//大小

daxiaoLabel=newJLabel("大小");comboxPanel.add(daxiaoLabel);

Stringdax[]={"15","10","5","20","25","30","35","40","..."};

daxiaobox=newJComboBox(dax);

comboxPanel.add(daxiaobox);

zitibox.setEditable(true);

yansebox.setEditable(true);

daxiaobox.setEditable(true);

comboxPanel.setLayout(newFlowLayout(FlowLayout.LEFT));//靠左排列

//组合框注册监听器

yansebox.addActionListener(newboxlistener());

zitibox.addActionListener(newboxlistener());

daxiaobox.addActionListener(newboxlistener());

txtPanel.setLayout(newGridLayout(1,1));

//实例化“撤销”

um=newUndoManager();

txtArea.getDocument().addUndoableEditListener(um);

}

//菜单栏的接口实现

privateclassShowActionextendsAbstractAction

{

publicShowAction(Stringname){super(name);}

publicvoidactionPerformed(ActionEvente)

{

Objects=e.getSource();

//新建

if(s==aa)

{

if(txtArea.getText().equals(""))

{

txtArea.setText("");

}

else{

intn=JOptionPane.showConfirmDialog(Aframe.this,"无标题记事本已改变。

\n想要保存吗?

","记事本",JOptionPane.YES_NO_CANCEL_OPTION);

if(n==JOptionPane.NO_OPTION){

txtArea.setText("");

setTitle("无标题"+"——"+"记事本");

}

elseif(n==JOptionPane.YES_OPTION)

{

save.setVisible(true);

Stringname=save.getDirectory()+save.getFile();

try

{

FileOutputStreamout=newFileOutputStream(name);

out.write(txtArea.getText().getBytes());

out.close();

}

catch(IOExceptiona)

{

System.err.println("保存失败。

");

}

}

}

}

//打开

if(s==ab)

{

open.setVisible(true);

Stringname=open.getDirectory()+open.getFile();

Stringname2=open.getFile();

setTitle(name2);

try

{

FileInputStreamin=newFileInputStream(name);

byte[]ia=newbyte[in.available()];

in.read(ia);

txtArea.setText(newString(ia));

in.close();

}

catch(IOExceptiona)

{

System.err.println("获取文件失败!

");

}

}

//另存为

if(s==ad)

{

save.setVisible(true);

Stringname=save.getDirectory()+save.getFile();

try

{

FileOutputStreamout=newFileOutputStream(name);

out.write(txtArea.getText().getBytes());

out.close();

}

catch(IOExceptiona)

{

System.err.println("保存失败。

");

}

shifulingcun=1;

}

//保存

if(s==ac)

{

if(shifulingcun!

=1)

{save.setVisible(true);}

Stringname=save.getDirectory()+save.getFile();

try

{

FileOutputStreamout=newFileOutputStream(name);

out.write(txtArea.getText().getBytes());

out.close();

}

catch(IOExceptionb)

{

System.err.println("保存文件失败");

}

}

//退出

if(s==ag)

{

intselection=JOptionPane.showConfirmDialog(

Aframe.this,

"确定退出么?

","退出?

",

JOptionPane.OK_CANCEL_OPTION,

JOptionPane.WARNING_MESSAGE);

if(selection==JOptionPane.OK_OPTION)

{

System.exit(0);

}

}

//选择自动换行

if(s==xz)

{

txtArea.setLineWrap(true);

}

//取消自动换行

if(s==qxxz)

{

txtArea.setLineWrap(false);

}

//背景颜色

if(s==bj)

{

Colorcolor=JColorChooser.showDialog(Aframe.this,"调色板",txtArea.getBackground());

if(color!

=null)

txtArea.setBackground(color);

}

//作者信息

if(s==zzxx)

{intselection=JOptionPane.showConfirmDialog(

Aframe.this,

"“我的记事本”编写小组成员:

悦,王征,光辉","作者信息",

JOptionPane.DEFAULT_OPTION);

}

//

if(s==bq)

{intselection=JOptionPane.showConfirmDialog(

Aframe.this,

"所有,XX!

","",

JOptionPane.DEFAULT_OPTION);

}

//声明

if(s==sm)

{intselection=JOptionPane.showConfirmDialog(

Aframe.this,

"该程序仅用于实践交流","声明",

JOptionPane.DEFAULT_OPTION);

}

//说明

if(s==shm)

{intselection=JOptionPane.showConfirmDialog(

Aframe.this,

"由于种种原因,该版本记事本还存在很多缺陷,我们将在以后的工作中予以改进","说明",

JOptionPane.DEFAULT_OPTION);

}

//剪切复制粘贴

if(s==ai||s==cutTtem)

{

txtArea.cut();

}

if(s==aj)

{

txtArea.copy();

}

if(s==an)

{

txtArea.paste();

}

//删除

if(s==ak)

{

txtArea.replaceRange("",txtArea.getSelectionStart(),txtArea.getSelectionEnd());

}

//全选

if(s==am)

{

txtArea.selectAll();

}

//撤销

if(s==ah)

{

um.undo();

}

//字体

if(s==zt)

{

tishi.setFont(newFont("华文行楷",1,15));

tanchu.setLocation(300,250);

tanchu.setSize(200,150);

tanchu.setTitle("字体设置");

tanchu.setLayout(newGridLayout(2,2,2,2));

tanchu.add(tishi);

tanchu.add(daxiaobox);

tanchu.add(que);

tanchu.add(zitibox);

tanchu.setVisible(true);

}

//状态栏

aaaaa.setText("当前字体是"+f

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2