Java编写的文本编辑器

上传人:jin****ng 文档编号:111242326 上传时间:2022-06-20 格式:DOC 页数:13 大小:116.50KB
返回 下载 相关 举报
Java编写的文本编辑器_第1页
第1页 / 共13页
Java编写的文本编辑器_第2页
第2页 / 共13页
Java编写的文本编辑器_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
字休宋休大小15宅理使用遵记事和界面:媲荒are事姦劇組(D 厳式2査看世)訣于帑瞅廿就绪W4 I ”代码(编译后可直接运行): /简单的类似记事本的文档编辑器 import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.io.*;import java.awt.font.*;import javax.swing.undo.UndoManager;public class MyTxtpublic static void main(String args)Aframe frame = new Aframe(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show();class Aframe extends JFramepublic Aframe()setTitle(我的记事本);setSize(WIDTH, HEIGHT);Container contentPane = getContentPane();JPanel txtPanel = new JPanel();JPanel comboxPanel = new JPanel();JPanel textPanel = new JPanel(); txtArea=new JTextArea(,17,40);JScrollPane scrollPane =new JScrollPane(txtArea); txtPanel.add(scrollPane); contentPane.add(comboxPanel,BorderLayout.NORTH); contentPane.add(txtPanel);contentPane.add(textPanel,BorderLayout.SOUTH);/Caidan lan:添加主菜单并设置快捷键JMenuBar menuBar =new JMenuBar();setJMenuBar(menuBar); fileMenu=new JMenu(文件(F); editMenu=new JMenu(编辑(E);typeMenu=new JMenu(格式(0); viewMenu=new JMenu(查看(V);helpMenu=new JMenu(帮助(H); aboutMenu=new JMenu(关于(A);fileMenu.setMnemonic(F); editMenu.setMnemonic(E);typeMenu.setMnemonic(0);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(new ShowActionC 新建);aa.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK); ab=fileMenu.add(new ShowAction(打开);ab.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0,InputEvent.CTRL_MASK); ac=fileMenu.add(new ShowAction(保存);ac.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK); ad=fileMenu.add(new ShowAction(另存为);ad.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK); fileMenu.addSeparator();ae=fileMenu.add(new ShowAction(页面设置);ae.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK); af=fileMenu.add(new ShowAction(打印);af.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_,PInputEvent.CTRL_MASK); fileMenu.addSeparator();分 割线ag=fileMenu.add(new ShowAction(退出);ag.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK); /bianji “编辑”菜单的子菜单添加以及设置加速器,监听器 ah=editMenu.add(new ShowAction(撤消);editMenu.addSeparator();ah.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK); ai=editMenu.add(new ShowAction(剪切);ai.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK); aj=editMenu.add(new ShowAction(复制);aj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); an=editMenu.add(new ShowAction(粘贴);an.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK); ak=editMenu.add(new ShowAction(删除);ak.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK); editMenu.addSeparator();al=editMenu.add(new ShowAction(查找);al.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK); am=editMenu.add(new ShowAction(全选);am.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK); /geshi “格式”菜单的子菜单添加以及设置加速器,监听器zdhh=new JMenu(自动换行(L);zdhh.setMnemonic(L);typeMenu.add(zdhh);ButtonGroup group =new ButtonGroup();xz=new JRadioButtonMenultem(选择);xz. addActionListener(new ShowAction(选择);xz.setSelected(true);qxxz=new JRadioButtonMenuItem(取 消);qxxz.addActionListener(new ShowAction(取消); qxxz.setSelected(true);group.add(xz);group.add(qxxz);zdhh.add(xz);zdhh.add(qxxz);bj=typeMenu.add(new ShowAction(背景颜色); bj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); zt=typeMenu.add(new ShowAction(字体); zt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK);/字体弹出框中的“确定”按钮que=new Button(确定);que.addActionListener(new boxlistener();/chakan “查看”菜单的子菜单添加以及设置加速器,监听器 ztl=viewMenu.add(new ShowAction(状态栏); ztl.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);/guanyu “关于”菜单的子菜单添加以及设置加速器,监听器 zzxx=aboutMenu.add(new ShowAction(作者信息); zzxx.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK); bq=aboutMenu.add(new ShowAction(版权); bq.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK); sm=aboutMenu.add(new ShowAction(声明); sm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK); /bangzhu “帮助”菜单的子菜单添加以及设置加速器,监听器 shm=helpMenu.add(new ShowAction(说明); shm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK); /文本框底部工具栏的设置toolbar2=new JToolBar();textPanel.add(toolbar2);text1=new JTextFieldC 就绪,10);text2=new JTextField(欢迎使用该记事本! ,10);text3=new JTextField(,10);text4=new JTextField(,10); textPanel.setLayout(new GridLayout(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=new JLabel(字体);comboxPanel.add(zitiLabel); String zit=宋体,华文行楷,楷体,黑体,幼圆; zitibox=new JComboBox(zit); comboxPanel.add(zitibox);/颜色yanseLabel=new JLabel(颜色);comboxPanel.add(yanseLabel);String yans=黑色,蓝色,绿色,红色,黄色,蓝绿色,浅灰色; yansebox=new JComboBox(yans);comboxPanel.add(yansebox);/大小daxiaoLabel=new JLabel(大小11 );comboxPanel.add(daxiaoLabel);String dax=,15,10,5,20,25,30,35,40,.,;daxiaobox=new JComboBox(dax);comboxPanel.add(daxiaobox);zitibox.setEditable(true);yansebox.setEditable(true);daxiaobox.setEditable(true);comboxPanel.setLayout(new FlowLayout(FlowLayout.LEFT);/靠左排列/组合框注册监听器yansebox.addActionListener(new boxlistener();zitibox.addActionListener(new boxlistener();daxiaobox.addActionListener(new boxlistener();txtPanel.setLayout(new GridLayout(1, 1);/实例化“撤销”um= new UndoManager ();txtArea.getDocument().addUndoableEditListener(um);/菜单栏的接口实现private class ShowAction extends AbstractActionpublic ShowAction(String name)super(name);public void actionPerformed(ActionEvent e)Object s=e.getSource();/新建if(s=aa)if(txtArea.getText().equals()txtArea.setText();elseint n=JOptionPane.showConfirmDialog(Aframe.this, 无标题 记事本已改变。n 想要保存吗?,记事本,JOptionPane.YES_NO_CANCEL_OPTION);if(n=JOptionPane.NO_OPTION)txtArea.setText();setTitle(”无标题+记事本”);else if(n=JOptionPane.YES_OPTION)save.setVisible(true);String name=save.getDirectory()+save.getFile();tryFileOutputStream out=new FileOutputStream(name);out.write(txtArea.getText().getBytes();out.close();catch(IOException a)保存失败。!);/打开if(s=ab)open.setVisible(true);String name=open.getDirectory()+open.getFile();String name2=open.getFile();setTitle(name2);tryFileInputStream in=new FileInputStream(name);byte ia=new bytein.available();in.read(ia);txtArea.setText(new String(ia);in.close();catch(IOException a)获取文件失败! ”);/另存为if(s=ad)save.setVisible(true);String name=save.getDirectory()+save.getFile();tryFileOutputStream out=new FileOutputStream(name);out.write(txtArea.getText().getBytes();out.close();catch(IOException a)保存失败。!);shifulingcun=1;/保存if(s=ac)if(shifulingcun!=1)save.setVisible(true);String name=save.getDirectory()+save.getFile();tryFileOutputStream out=new FileOutputStream(name);out.write(txtArea.getText().getBytes();out.close();catch(IOException b)System.err.printlnC 保存文件失败”);/退出if(s=ag)int selection = 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)Color color=JColorChooser.showDialog(Aframe.this, 调 色 板 , txtArea.getBackground();if(color!=null)txtArea.setBackground(color);/作者信息if (s=zzxx)int selection = JOptionPane.showConfirmDialog(Aframe.this,“我的记事本”编写小组成员:刘悦,王征,沈光辉,作者信息,JOptionPane.DEFAULT_OPTION);/版权if (s=bq)int selection = JOptionPane.showConfirmDialog(Aframe.this,版权所有,盗版必究!,版权,JOptionPane.DEFAULT_OPTION);/声明if (s=sm)int selection = JOptionPane.showConfirmDialog(Aframe.this,该程序仅用于实践交流,声明,JOptionPane.DEFAULT_OPTION);/说明if (s=shm)int selection = 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(new Font(华文行楷,1,15);tanchu.setLocation(300,250);tanchu.setSize(200,150);tanchu.setTitle( 字体设置);tanchu.setLayout(new GridLayout(2,2,2,2); tanchu.add(tishi);tanchu.add(daxiaobox);tanchu.add(que);tanchu.add(zitibox);tanchu.setVisible(true);/状态栏aaaaa.setText(” 当前字体是+ff+ 颜色是+zzz+大小是+kk);if (s=ztl)tanchu.setLocation(300,250);tanchu.setSize(300,150);tanchu.setTitle(当前状态);tanchu.setLayout(new GridLayout(2,2,2,2);aaaaa.setEditable(false); tanchu.add(aaaaa); tanchu.add(que); tanchu.setVisible(true);/查找/组合框的接口实现private class boxlistener implements ActionListenerpublic void actionPerformed(ActionEvent ee)Object ss=yansebox.getSelectedItem();Object zz=zitibox.getSelectedItem();Object dx=daxiaobox.getSelectedItem();String tr=(String)ss;String tz=(String)zz;String td=(String)dx;/字体菜单中弹出菜单“确定”的响应if (ee.getSource()=que)tanchu.dispose();/颜色if(tr=红色) txtArea.setForeground(Color.red); zzz=红色;if(tr=黑色) txtArea.setForeground(Color.black); zzz=黑色;if(tr=绿色) txtArea.setForeground(Color.green); zzz=绿色;if(tr=蓝色)txtArea.setForeground(Color.blue);zzz=蓝色;if(tr= 黄色)txtArea.setForeground(Color.yellow);zzz= 黄色;if(tr= 蓝绿色)txtArea.setForeground(Color.cyan);zzz= 蓝绿色;if(tr= 浅灰色)txtArea.setForeground(Color.lightGray);zzz= 浅灰色;/字体if(tz= 华文行楷)Font f=txtArea.getFont();txtArea.setFont(new Font(华文行楷,f.getStyle(),f.getSize();ff= 华文行楷;if(tz=楷体)Font f=txtArea.getFont();txtArea.setFont(new Font(楷 体,f.getStyle(),f.getSize(); ff= 楷体;if(tz=宋体)Font f=txtArea.getFont();txtArea.setFont(new Font(宋体,f.getStyle(),f.getSize(); ff=宋体;if(tz=黑体)Font f=txtArea.getFont();txtArea.setFont(new Font(黑体,f.getStyle(),f.getSize(); ff=黑体;if(tz=幼圆)Font f=txtArea.getFont();txtArea.setFont(new Font(幼圆,f.getStyle(),f.getSize(); ff=幼圆;/大小if(td=5)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),5); kk=5;if(td=10)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),10); kk=10; if(td=15)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),15); kk=15; if(td=20)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),20); kk=20; if(td=25)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),25); kk=25; if(td=30)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),30); kk=30; if(td=35)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),35); kk=35; if(td=40)Font f=txtArea.getFont();txtArea.setFont(new Font(f.getName(),f.getStyle(),40); kk=40;public static final int WIDTH = 550;public static final int HEIGHT = 450;JTextArea txtArea;JMenu fileMenu,editMenu,typeMenu,viewMenu,helpMenu,aboutMenu;JMenuItem aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,zdhh,zt,ztl,zzxx,bq,sm,shm,bj,cutTtem;JComboBox zitibox,yansebox,daxiaobox;JLabel zitiLabel,yanseLabel,daxiaoLabel;FileDialog open=new FileDialog(this, 打开FileDialog save=new FileDialog(this,另存为.,FileDialog.SAVE);JRadioButtonMenuItem xz,qxxz;JFileChooser fileChooser;int shifulingcun;JToolBar toolbar2;JTextField text1,text2,text3,text4;public JTextField aaaaa=new JTextField ();UndoManager um;Dialog tanchu=new Dialog(this);public Button que;Label tishi=new Label( 字体和大小:);String ff=,kk=,zzz=;界面:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!