JAVA文本编辑器.docx

上传人:b****6 文档编号:5616845 上传时间:2022-12-29 格式:DOCX 页数:26 大小:22KB
下载 相关 举报
JAVA文本编辑器.docx_第1页
第1页 / 共26页
JAVA文本编辑器.docx_第2页
第2页 / 共26页
JAVA文本编辑器.docx_第3页
第3页 / 共26页
JAVA文本编辑器.docx_第4页
第4页 / 共26页
JAVA文本编辑器.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

JAVA文本编辑器.docx

《JAVA文本编辑器.docx》由会员分享,可在线阅读,更多相关《JAVA文本编辑器.docx(26页珍藏版)》请在冰豆网上搜索。

JAVA文本编辑器.docx

JAVA文本编辑器

文本编辑器,实现功能:

1.颜色,字体的改变关联

2.复制,粘贴,剪切功能

3.全选功能

4.时间戳功能

5.自动换行功能

6.帮助功能

7.文件读取,打开,保存,另存为功能等功能,首先我们看主要程序!

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

importjavax.swing.event.CaretEvent;

importjavax.swing.event.CaretListener;

importjavax.swing.undo.StateEdit;

importjava.util.*;

importfilter.FileExtensionFilter;

publicclassEditorJFrameextendsJFrameimplementsActionListener,MouseListener,KeyListener,CaretListener

{

privateJComboBoxcombox_name,combox_size;

privateJCheckBoxcheckb_bold,checkb_italic;

privateJRadioButtonradiob_color[];

privateJTextAreatext;

privateJButtonfindenter;

privateJTextFieldfindtxt;

privateJPopupMenupopupmenu;

privateJLabelstateBar;

privateColorcolor;

privateJCheckBoxMenuItemjcbmi[];

privateJRadioButtonMenuItemrbmi_color[];

privateJMenuItemfile[];

privateJMenuItemeditor[];

privateJMenuItemstyle[];

privateJMenuItemother[];

privateFilefilename;

privateJFileChooserfchooser;

privatebooleaniexc=true,jd=true,xy=true,xx=true;

privateStringstrline;

privateStringsubstrline="";

privateJDialogjdialog;

privateintendf=0,startf=0;

privateJFramejframe;

privateJTextFieldtxt;

publicEditorJFrame()

{

super("文本编辑器");

Dimensiondim=getToolkit().getScreenSize();

this.setBounds(dim.width/4,dim.height/4,

dim.width/2,dim.height/2);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

text=newJTextArea("Welcome欢迎");

text.addMouseListener(this);

text.addCaretListener(this);

text.addKeyListener(this);

text.setForeground(newColor(255,0,0));

this.getContentPane().add(newJScrollPane(text));

findenter=newJButton("查找下一个");

findenter.addActionListener(this);

findtxt=newJTextField(7);

findenter.addActionListener(this);

findenter.setEnabled(false);

findtxt.addCaretListener(this);

txt=newJTextField("ABC");

txt.setEditable(false);

JToolBartoolbar=newJToolBar();

this.getContentPane().add(toolbar,"North");

GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();

String[]fontsName=ge.getAvailableFontFamilyNames();

combox_name=newJComboBox(fontsName);

combox_name.addActionListener(this);

toolbar.add(combox_name);

Stringsizestr[]={"20","30","40","50","60","70"};

combox_size=newJComboBox(sizestr);

combox_size.setEditable(true);

combox_size.addActionListener(this);

toolbar.add(combox_size);

this.filename=null;

this.fchooser=newJFileChooser(newFile(".",""));

this.fchooser.setFileFilter(newFileExtensionFilter("文本文件(*.txt)","txt"));

strline=text.getText();

checkb_bold=newJCheckBox("粗体");

toolbar.add(checkb_bold);

checkb_bold.addActionListener(this);

checkb_italic=newJCheckBox("斜体");

toolbar.add(checkb_italic);

checkb_italic.addActionListener(this);

Stringcolorstr[]={"红","绿","蓝","其他"};

ButtonGroupbgroup_color=newButtonGroup();

radiob_color=newJRadioButton[colorstr.length];

for(inti=0;i

{

radiob_color[i]=newJRadioButton(colorstr[i]);

radiob_color[i].addActionListener(this);

bgroup_color.add(radiob_color[i]);

toolbar.add(radiob_color[i]);

}

radiob_color[0].setSelected(true);

this.addmyMenu();

this.setVisible(true);

this.addWindowListener(newWindowAdapter(){//此处为弹出对话保存

publicvoidwindowClosing(WindowEvente){

closeFile();

}

});

}

privatevoidaddmyMenu()

{

JMenuBarmenubar=newJMenuBar();

this.setJMenuBar(menubar);

Stringmenustr[]={"文件","编辑","格式","帮助"};

JMenumenu[]=newJMenu[menustr.length];

for(inti=0;i

{

menu[i]=newJMenu(menustr[i]);

menubar.add(menu[i]);

}

Stringfilestr[]={"新建(N)","打开(O)","保存(S)","另存为(A)...","退出(X)"};

file=newJMenuItem[filestr.length];

for(inti=0;i

{

if(i==4)

menu[0].addSeparator();

file[i]=newJMenuItem(filestr[i]);

file[i].addActionListener(this);

menu[0].add(file[i]);

}

file[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));

file[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

file[2].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

file[3].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

file[4].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

Stringeditorstr[]={"撤销(U)","剪切(T)","复制(C)","粘贴(P)","删除(L)","查找(F)","查找下一个(N)","全选(A)","时间/日期"};

editor=newJMenuItem[editorstr.length];

for(inti=0;i

{

if(i==1||i==6||i==9)

menu[1].addSeparator();

editor[i]=newJMenuItem(editorstr[i]);

editor[i].setEnabled(false);

editor[i].addActionListener(this);

menu[1].add(editor[i]);

}

editor[3].setEnabled(true);

editor[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));

editor[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

editor[2].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

editor[3].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));

editor[4].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK));

editor[5].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));

editor[6].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,InputEvent.CTRL_MASK));

editor[7].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

editor[8].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,InputEvent.CTRL_MASK));

JMenumenu_style=newJMenu("字形");

Stringstr[]={"粗体","斜体"};

jcbmi=newJCheckBoxMenuItem[str.length];

jcbmi[0]=newJCheckBoxMenuItem("粗体");

menu_style.add(jcbmi[0]);

jcbmi[0].addActionListener(this);

jcbmi[1]=newJCheckBoxMenuItem("斜体");

menu_style.add(jcbmi[1]);

jcbmi[1].addActionListener(this);

menu[1].add(menu_style);

JMenumenu_color=newJMenu("颜色");

menu[1].add(menu_color);

ButtonGroupbuttongroup=newButtonGroup();

Stringcolorstr[]={"红","绿","蓝","其他"};

rbmi_color=newJRadioButtonMenuItem[colorstr.length];

for(inti=0;i

{

rbmi_color[i]=newJRadioButtonMenuItem(colorstr[i]);

buttongroup.add(rbmi_color[i]);

rbmi_color[i].addActionListener(this);

menu_color.add(rbmi_color[i]);

}

Stringstylestr[]={"自动换行(W)"};

style=newJMenuItem[stylestr.length];

for(inti=0;i

{

style[i]=newJMenuItem(stylestr[i]);

style[i].addActionListener(this);

menu[2].add(style[i]);

}

style[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK));

Stringotherstr[]={"帮助(H)","关于记事本(A)"};

other=newJMenuItem[otherstr.length];

for(inti=0;i

{

other[i]=newJMenuItem(otherstr[i]);

other[i].addActionListener(this);

menu[3].add(other[i]);

}

menu[3].addSeparator();

other[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));

other[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

popupmenu=newJPopupMenu();

Stringmenuitemstr[]={"剪切","复制","粘贴"};

JMenuItempopmenuitem[]=newJMenuItem[menuitemstr.length];

for(inti=0;i

{

popmenuitem[i]=newJMenuItem(menuitemstr[i]);

popupmenu.add(popmenuitem[i]);

popmenuitem[i].addActionListener(this);

}

JScrollPanepanel=newJScrollPane(text,

ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,

ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

ContainercontentPane=getContentPane();

contentPane.add(panel,BorderLayout.CENTER);

//状态栏

stateBar=newJLabel("未修改");

stateBar.setHorizontalAlignment(SwingConstants.LEFT);

stateBar.setBorder(

BorderFactory.createEtchedBorder());

contentPane.add(stateBar,BorderLayout.SOUTH);

popmenuitem[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

popmenuitem[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

popmenuitem[2].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));

text.add(popupmenu);

}

publicvoidSearch()

{

jdialog=newJDialog(this,"查找");

jdialog.add(newJLabel("输入要查找字符:

"));

jdialog.setLayout(newFlowLayout(FlowLayout.LEFT));

jdialog.add(findtxt);

jdialog.add(findenter);

jdialog.setDefaultCloseOperation(HIDE_ON_CLOSE);

jdialog.setBounds(this.getX()+100,this.getY()+150,300,100);

jdialog.show();

}

publicvoidfind()

{

startf=text.getText().indexOf(findtxt.getText(),0+endf);

endf=startf+findtxt.getText().length();

text.select(startf,endf);

if(startf<0)

{

jdialog.show(false);

JOptionPane.showMessageDialog(jdialog,"没有找到");

startf=0;

}

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()instanceofJButton)

{

if(e.getSource()==findenter)

{

if(text.getText().equals("")){

JOptionPane.showMessageDialog(jdialog,"没有找到");

return;}

find();

}

}

if(e.getSource()instanceofJRadioButton)

{

if(e.getSource()==radiob_color[0])

{

rbmi_color[0].setSelected(true);

color=newColor(255,0,0);

}

if(e.getSource()==radiob_color[1])

{

rbmi_color[1].setSelected(true);

color=newColor(0,255,0);

}

if(e.getSource()==radiob_color[2])

{

rbmi_color[2].setSelected(true);

color=newColor(0,0,255);

}

if(e.getSource()==radiob_color[3])

{

ColoruseSelectColor=JColorChooser.showDialog(this,"选择颜色",Color.red);

color=useSelectColor;

}

text.setForeground(color);

return;

}

if(e.getSource()instanceofJCheckBoxMenuItem||e.getSource

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

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1