精华内容
下载资源
问答
  • java编辑文本撤销操作
    2021-04-17 11:19:07

    作文本编辑器的时候,撤销(undo)、恢复(redo)是必不可少的两个功能。实现这个功能,要用到javax.swing.undo包中的UndoManager类。

    UndoManager类有如下常用方法:

    boolean canUndo()  ——判断能否进行撤消操作,可以则返回true。

    boolean canRedo()  ——判断能否进行恢复操作,可以则返回true。

    void Undo()  ——进行撤消操作。

    void Redo()  ——进行恢复操作。

    但是,进行撤销、恢复操作前还应为撤销、恢复的对象注册侦听器。在文本编辑器中,对象就是文本。例如先声明两个对象:

    JTextArea text = new JTextArea();

    UndoManager undomg = new UndoManager();

    接下来,为text添加侦听器:

    text.getDocument().addUndoableEditListener(undomg);

    这里要说名一下,之所以要写getDocument()是因为注册侦听器的对象是文本,不是文本框。addUndoableEditListener(undomg)的作用是为text的文本注册侦听器,该方法的原型是:

    void addUndoableEditListener(UndoableEditListener listener)

    可以看出,该方法的参数应是一个UndoableEditListener接口类型的参数,而我们用的参数是UndoManager类型,这是因为UndoManager类已经实现了UndoableEditListener接口的缘故。

    现在就可以进行撤销、恢复操作了。方法是:

    undomg.Undo(); //撤销

    undomg.Redo(); //恢复

    但是这样不算完美,因为如果无法撤销或恢复,这两个语句就不会起任何作用。因此我们改用如下方法:

    if(undomg.canUndo()) { //撤销

    undomg.Undo();

    }

    if(undomg.canRedo()) { //恢复

    undomg.Redo();

    }

    这样一来,文本编辑器的撤销、恢复功能很容易地就实现了。以下是一个例子:

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    import javax.swing.undo.*;

    class UndoDemo extends JFrame {

    static JTextArea text = new JTextArea();

    static JPanel pnl = new JPanel();

    static JButton unbtn = new JButton("撤销");

    static JButton rebtn = new JButton("恢复");

    static UndoManager undomg = new UndoManager();

    UndoDemo() {

    super("撤销、恢复功能实例");

    setVisible(true);

    setSize(400,300);

    s

    更多相关内容
  • java实现文本编辑

    2019-03-21 16:46:27
    (2) 编辑撤销,取消撤销,剪切,复制,粘贴,全选,删除,替换(替换单个、全部替换),查找(查找一个,查找下一个) (3)格式的字体设置(字体、字形、字号) (4)快捷键(所有功能的快捷键都实现了) ...
  • 文本编辑器(java

    2018-01-03 22:54:31
    java图形用户界面学习,简单文本编辑器,有字体设计、大小、保存、另存、打开等功能
  • 广工java文本编辑器课设(含源代码和报告),完成文本编辑器的基本功能新建文本、保存文本、打开文本撤销、删除、剪切、复制、粘贴、大小写转换、查找、字数、行数、状态栏、字体大小和颜色、背景颜色等
  • 我需要实现一个完成恢复撤销功能的通用模块,这个项目主要是是基于swing下的图面界面开发,也就是回到上一步以及到下一步。我的思路是将当前的panel面板当做一个对象对其进行深拷贝pu...我需要实现一个完成恢复撤销...

    我需要实现一个完成恢复撤销功能的通用模块,这个项目主要是是基于swing下的图面界面开发,也就是回到上一步以及到下一步。我的思路是将当前的panel面板当做一个对象对其进行深拷贝pu...

    我需要实现一个完成恢复撤销功能的通用模块,这个项目主要是是基于swing下的图面界面开发,也就是回到上一步以及到下一步。我的思路是将当前的panel面板当做一个对象对其进行深拷贝

    public static Object copy(Object oldObj) {

    Object obj = null;

    try {

    // Write the object out to a byte array

    ByteArrayOutputStream bos = new ByteArrayOutputStream();

    ObjectOutputStream out = new ObjectOutputStream(bos);

    out.writeObject(oldObj);

    out.flush();

    out.close();

    // Retrieve an input stream from the byte array and read

    // a copy of the object back in.

    ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());

    ObjectInputStream in = new ObjectInputStream(bis);

    obj = in.readObject();

    } catch (IOException e) {

    e.printStackTrace();

    } catch (ClassNotFoundException cnfe) {

    cnfe.printStackTrace();

    }

    return obj;

    }

    然后将拷贝的对象放在一个队列之中,恢复时取出来即可,然后发现了一个bug

    java.io.IOException: failed to load image contents

    at javax.swing.ImageIcon.writeObject(Unknown Source)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)

    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)

    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)

    at java.io.ObjectOutputStream.writeObject0(Unknown Source)

    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)

    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)

    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)

    at java.io.ObjectOutputStream.writeObject0(Unknown Source)

    at java.io.ObjectOutputStream.writeArray(Unknown Source)

    at java.io.ObjectOutputStream.writeObject0(Unknown Source)

    at java.io.ObjectOutputStream.access$300(Unknown Source)

    注:这个面板继承了JPanel,里面还包含其他的组件,例如图例框,比例尺等,还实现了paintComponent方法

    展开

    展开全文
  • java文本撤销和恢复

    2021-03-10 05:24:40
    文本撤销和恢复是通过 addUndoableEditListener(UndoableEditListenerlistener)这个方法来注册实现的。只要是Document类及其子类都可以注册撤销和恢复的监听来实现文档的撤销和恢复,这是非常容易实现的。所以...

    文本的撤销和恢复是通过 addUndoableEditListener(UndoableEditListener listener)这个方法来注册实现的。只要是Document类及其子类都可以注册撤销和恢复的监听来实现文档的撤销和恢复,这是非常容易实现的。所以JTextField,JTextArea,JTextPane都可以实现撤销和恢复功能。因为他们都可以获得Document实例,通过这个方法----getDocument();下面来用实例来讲解一下。

    下面的实例是在一个JTextPane中实现撤销和恢复,通过右键弹出菜单来操作。弹出菜单的第一个菜单项是"撤销",第二个是"恢复",第三个是"插入图片"。

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import java.awt.event.MouseAdapter;

    import java.awt.event.MouseEvent;

    import javax.swing.ImageIcon;

    import javax.swing.JFrame;

    import javax.swing.JMenuItem;

    import javax.swing.JPopupMenu;

    import javax.swing.JTextPane;

    import javax.swing.event.UndoableEditEvent;

    import javax.swing.event.UndoableEditListener;

    import javax.swing.undo.UndoManager;

    import com.jijing.tool.SwingConsole;

    public class UndoFunction extends JFrame{

    /**

    * @param args

    * 实现简单的撤销功能,并通过Ctrl+Z快捷键来快速操作,这次是在一个文本面板中,既可以写文字又可以插入图片,可以撤销也可以恢复

    * 通过鼠标右键来弹出菜单实现撤销和恢复的操作

    */

    private UndoManager um;//撤销管理类

    private JTextPane jp;//文本面板

    private String name[]={

    "撤销",

    "恢复",

    "插入图片"

    };

    private JPopupMenu pm;//右键弹出菜单类

    private JMenuItem mt[];

    public UndoFunction(){

    um=new UndoManager();

    jp=new JTextPane();

    pm=new JPopupMenu();

    mt=new JMenuItem[3];

    for(int i=0;i<3;++i){

    mt[i]=new JMenuItem(name[i]);

    pm.add(mt[i]);

    mt[i].addActionListener(new PopupAction());

    }

    add(jp);

    jp.addMouseListener(new MouseAdapter(){

    public void mousePressed(MouseEvent e){

    maybeShowPopup(e);

    }

    public void mouseReleased(MouseEvent e){

    maybeShowPopup(e);

    }

    private void maybeShowPopup(MouseEvent e){

    if(e.isPopupTrigger()){//如果有弹出菜单

    pm.show(e.getComponent(), e.getX(), e.getY());

    }

    }

    });

    jp.getDocument().addUndoableEditListener(new UndoableEditListener(){//注册撤销可编辑监听器

    public void undoableEditHappened(UndoableEditEvent e) {

    um.addEdit(e.getEdit());

    }

    });//编辑撤销的监听

    }

    public static void main(String[] args) {

    SwingConsole.swingRun(new UndoFunction(),600,400);

    }

    class PopupAction implements ActionListener{

    public void actionPerformed(ActionEvent e) {

    if(e.getSource()==mt[0]&&um.canUndo()){//撤销

    um.undo();

    }else if(e.getSource()==mt[1]&&um.canRedo()){//恢复

    um.redo();

    }else if(e.getSource()==mt[2]){//插入图片

    ImageIcon icon=new ImageIcon(getClass().getResource("/1.png"));

    jp.insertIcon(icon);

    }

    }

    }

    }

    其实对于文档编辑的撤销和恢复是非常简单的,只要获取getDocument()就可以实现监听了,在监听方法中添加编辑数据就可以了,

    UndoManager .addUndoableEditListener(UndoableEditEvent .getEdit());

    在就是在撤销操作中调用UndoManager .undo()就可以了,还有canUndo()这个方法和重要,用于判断undo操作是否成功,如果成功就返回true。

    在恢复操作中调用UndoManager .redo()可以实现恢复,还有canRedo()方法判断redo操作是否成功,如果成功返回true。

    //下面讲解的是 如果没有提供addUndoableEditListener()方法怎么实现撤销和恢复操作

    展开全文
  • 上传的代码为完成代码,该记事本实现了windows系统中记事本的全部功能,代码清晰,下载即可使用。
  • JAVA文本编辑器源码

    2018-06-02 15:41:00
    JAVA swing 编写类似windows记事本的文本编辑器软件,能够实现文件打开、保存、多窗口(有bug)、退出、编辑字体功能。供在校学生和初学者学习。
  • java如何在绘图板上实现undo(撤销操作)
  • JAVA:一个简易的文本编辑

    千次阅读 多人点赞 2019-04-12 19:17:15
    Today,我们来做一个JAVA文本编辑器,使用的基础知识有AWT,I/O流,异常处理,数组,循环,编辑器是Eclipse IDE,编译环境为javaSE-10,该文本编辑器有以下九项功能 1.可以新建文本文件 2.可以进行页面设置 3....

    献给JAVA的:从接触到喜欢到讨厌到爱

    Today,我们来做一个JAVA的文本编辑器,使用的基础知识有AWT,I/O流,异常处理,数组,循环,编辑器是Eclipse IDE,编译环境为javaSE-10,该文本编辑器有以下九项功能

    1.可以新建文本文件
    2.可以进行页面设置
    3.可以查看帮助内容
    4.可以删除你所写的
    5.可以查看当前系统时间
    6.可以打开文本文件
    7.可以保存文本文件
    8.系统会监控你在这个编辑器上的所有行为并显示在屏幕上
    9.可以计数你所输入的字母和数字的个数
    

    以下是这个文本编译器的源代码,里面有相当丰富的注释内容,这里就不分块解释了

    //代码整体布局是
    //前面是向容器里添加组件
    //中间是为组件添加监听器
    //后面是一些功能函数
    package Xiti1;
    //导入所需的包
    import java.util.Calendar;
    import java.awt.MenuBar;
    import java.awt.Menu;
    import java.awt.Frame;
    import java.awt.Button;
    import java.awt.TextArea;
    import java.awt.Dialog;
    import java.awt.MenuItem;
    import java.awt.Color;
    import java.awt.FileDialog;
    import java.awt.Label;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.OutputStreamWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.awt.event.MouseMotionListener;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.MouseEvent;
    public class OMG2 implements MouseMotionListener,ActionListener{
    	//定义变量
    	private TextArea ta;
    	private String s = "";
    	private String s7="";
    	private String s8="";
    	private Frame fr;
    	private Dialog d;
    	private Button b1; 
    	private Button b2;
    	private Button b3; 
    	private Button b4; 
    	private Calendar cal;
    	private int tongji1;
    	private int tongji2;
    	private char[] shuzu;
    	//构造方法
    	public OMG2() {
    		//从第48行到第94行都是向BorderLayout容器里添加组件
    		Frame fr = new Frame("文本编辑器");
    		TextArea ta = new TextArea();
    		MenuBar mb = new MenuBar();
    		Menu m1 = new Menu("文件");
    		Menu m2 = new Menu("编辑");
    		Menu m3 = new Menu("帮助");
    		Menu m4 = new Menu("工具栏");
    		MenuItem mi1 = new MenuItem("保存");
    		MenuItem mi2 = new MenuItem("新建");
    		MenuItem mi3 = new MenuItem("退出");
    		MenuItem mi4 = new MenuItem("展示帮助文档");
    		MenuItem mi5 = new MenuItem("打开");
    		MenuItem mi6 = new MenuItem("页面设置");
    		MenuItem mi7 = new MenuItem("时间和日期");
    		MenuItem mi8 = new MenuItem("复制");
    		MenuItem mi9 = new MenuItem("粘贴");
    		MenuItem mi10 = new MenuItem("剪贴");
    		MenuItem mi11 = new MenuItem("撤销");
    		MenuItem mi12 = new MenuItem("删除");
    		MenuItem mi13 = new MenuItem("Web工具");
    		MenuItem mi14 = new MenuItem("绘图");
    		MenuItem mi15 = new MenuItem("自定义");
    		MenuItem mi16 = new MenuItem("统计");
    		m1.add(mi1);
    		m1.add(mi2);
    		m1.add(mi5);
    		m1.add(mi3);
    		m1.add(mi6);
    		m2.add(mi7);
    		m2.add(mi8);
    		m2.add(mi9);
    		m2.add(mi10);
    		m2.add(mi11);
    		m2.add(mi12);
    		m2.add(m4);
    		m3.add(mi4);
    		m4.add(mi13);
    		m4.add(mi14);
    		m4.add(mi15);
    		m4.add(mi16);
    		mb.add(m1);
    		mb.add(m2);
    		mb.add(m3);
    		Button b1 = new Button("红色");
    		Button b2 = new Button("黄色");
    		Button b3 = new Button("蓝色");
    		Button b4 = new Button("绿色");
    		//MenuItem,Menu,MenuBar,Frame这三者关系为
    		//MenuItem通常加到Menu里面,Menu必须加到MenuBar里面,MenuBar必须加到Frame里面		
    		fr.setMenuBar(mb);
    		//设置组件TaxtArea为可编辑的
    		ta.setEditable(true);
    		//通过接口为组件TextArea添加鼠标移动监听器
    		ta.addMouseMotionListener(this);
    		//通过事件适配器为组件TextArea添加键盘敲击器
    		ta.addKeyListener(new KeyAdapter() {
    			public void keyPressed(KeyEvent e) {
    				System.out.println("key Pressed");
    			}
    			public void keyReleased(KeyEvent e) {
    				System.out.println("key Released");
    			}
    			public void keyTyped(KeyEvent e) {
    				s = s + e.getKeyChar();	
    			}
    		});
    		//为菜单项mi1(保存)添加动作监听器
    		mi1.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    			System.out.println("您正在保存文件,请稍后");
    			try {
    				//跳转到第294行的baocun()函数
    				baocun();
    			} catch (IOException e1) {
    				e1.printStackTrace();
    			}
    			}
    		});
    		//为菜单项mi2(新建)添加动作监听器
    		mi2.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    			System.out.println("正在新建文本文件,请稍后");
    			try {
    				//xinjian()函数对应第281行
    				xinjian();
    			} catch (IOException e1) {
    				e1.printStackTrace();
    			}
    			}});
    		//为菜单项mi3(退出)添加动作监听器
    		mi3.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    			//用户点击这个MenuItem就退出程序
    			System.out.println("您已成功退出");
    			System.exit(1);
    			}
    		});
    		//为菜单项mi4(展示帮助文档)添加动作监听器
    		mi4.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				//向组件TextArea写
    				ta.setText("这是个文本编辑器 \n你可以把你想写的写到下面那个绿色区域\n\n这个文本编辑器的功能有:\n"+
    						"1.可以新建文本文件\n2.可以进行页面设置\n3.可以查看帮助内容\n4.可以删除你所写的\n5.可以查看当前系统时间\n"+
    						"6.可以打开文本文件\n7.可以保存文本文件\n8.系统会监控你在这个编辑器上的所有行为\n9.可以计数你所输入的字母和数字的个数"+
    						"\n\n注意事项\n新建的文本文件的位置在D://自己的软件//66.txt\n这是我自己设置的,你的电脑可能没有这个目录\n"
    						+ "当你获取源代码后请自行修改,否则会引发异常");
    			}
    		});
    		//为菜单项mi5(打开)添加动作监听器
    		mi5.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				try {
    					//跳转函数dakai(),在第257行
    					//该函数返回了一个String类型的值
    					s8 = dakai();
    					//把该函数返回的这个值写到TextArea里
    					ta.setText(s8);
    				} catch (FileNotFoundException e1) {
    					e1.printStackTrace();
    				}
    		}});
    		//为菜单项mi6(页面设置)添加动作监听器
    		mi6.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				//跳转函数yemiansheji(),在第315行
    			yemianshezhi();
    			}
    		});
    		//为容器Frame添加窗口监听器
    		fr.addWindowListener(new WindowAdapter() {
    			public void windowOpened(WindowEvent e) {
    				System.out.println("window open");
    			}
    			public void windowClosing(WindowEvent e) {
    				System.exit(1);
    			}
    			public void windowIconified(WindowEvent e) {
    				System.out.println("window Iconified");
    			}
    			public void windowDeiconified(WindowEvent e) {
    				System.out.println("window Deiconified");
    			}
    			public void windowActivated(WindowEvent e) {
    				System.out.println("window Activated");
    			}
    			public void windowDeactivated(WindowEvent e) {
    				System.out.println("window Deactivated");
    			}
    		});
    		//为菜单项mi7(时间和日期)添加动作监听器
    		mi7.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				//实例化一个Calendar对象
    				//这个Calendar在java.unit包里,它和系统时间相关
    				Calendar cal = Calendar.getInstance();
    				//获取当前系统的年份
    				int y = cal.get(Calendar.YEAR);
    				//获取当前系统的月份
    				int m = cal.get(Calendar.MONTH);
    				int d = cal.get(Calendar.DATE);
    				int h = cal.get(Calendar.HOUR_OF_DAY);
    				int mi = cal.get(Calendar.MINUTE);
    				int s = cal.get(Calendar.SECOND);
    				String t = "现在时刻是"+y+"年"+m+"月"+d+"日"+h+"时"+mi+"分钟"+s+"秒";
    				ta.setText(t);
    				}
    		});
    		//为菜单项mi12(删除)添加动作监听器
    		mi12.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				//删除其实就是用一个空字符串代替你所写的
    				String t1 = "";
    				ta.setText(t1);
    			}			
    		});
    		//为菜单项mi16(统计)统计动作监听器
    		mi16.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				//tongji()函数在第238行
    				tongji();
    				ta.setText("你所输入字母的个数是:"+tongji1+"\n你所输入数字的个数是:"+tongji2);
    			}
    		});
    		//向Frame添加组件TextArea
    		fr.add(ta);
    		//设置容器Frame是可见的
    		fr.setVisible(true);
    		//设置容器的左上角的位置和容器本身的大小
    		fr.setBounds(100,100,400,400);
    	}
    	public static void main(String[] args) {
    		OMG2 o = new OMG2();
    	}
    	public void tongji() {
    		//统计用户输入的数字个数和字母个数
    		//现把用户输入的存到数组里
    		char[] shuzu = s.toCharArray();
    		for(int i=0;i<shuzu.length;i++) {
    			//如果是字母
    			if((shuzu[i]<=122)&&(shuzu[i]>=97)) {
    				tongji1 = tongji1 + 1;
    			}
    			//如果是数字
    			if((shuzu[i]>=49)&&(shuzu[i]<=57)) {
    				tongji2 = tongji2 + 1;
    			}
    		}		
    	}
    	//根据你的输入打开一个文本文件
    	public String dakai() throws FileNotFoundException {
    		//使用组件FileDialog,然后使用函数getFile和获取输入的文件名
    		FileDialog fd = new FileDialog(fr,"打开",FileDialog.LOAD);
    		fd.setVisible(true);
    		//如果你没有输入文件名
    		if(fd.getFile()==null) {
    			System.out.println("打开失败");
    		}
    		try {
    			//获取你输入文件名的路径,并将它作为参数传递给流FileInputStream,把这个流作为参数传递给流InputStreamReader
    			FileInputStream fis1 = new FileInputStream(fd.getDirectory()+fd.getFile());
    			InputStreamReader isr1 = new InputStreamReader(fis1);
    			//定义一个数组,这个数组存了你所输入那个文件的内容
    			char[] cbuf = new char[10];
    			isr1.read(cbuf, 0, 10);
    			for(int j=0;j<10;j++) {
    				s7 = s7 + cbuf[j];
    			}
    		}catch(Exception e) {
    			System.out.println("打开异常");		
    	}
    		//返回你所输入文件里的内容,并显示在TextArea里面
    		return s7;
    	}
    	public void xinjian() throws IOException {
    		//这里我选择在D://自己的软件这个目录下新建一个文本文件66.txt
    		String s = "D://自己的软件";
    		String p = "66.txt";
    		File f = new File(s,p);
    		if(!f.exists()) {
    			//新建文件的专属函数creatNewFile()
    			f.createNewFile();
    			System.out.println("新建成功");
    			System.out.println("新建文本文件的位置:"+f.getPath());
    		}		
    	}
    	//将你在TextArea里面所写的保存到一个文本文件里
    	public void baocun() throws IOException,NullPointerException {
    		FileDialog fd = new FileDialog(fr,"请输入你要保存的文件名",FileDialog.SAVE);
    		System.out.println("你在TextArea里的输入为:"+s);
    		fd.setVisible(true);
    		if(fd.getDirectory()==null) {
    			System.out.println("你没有选择保存位置");
    		}
    		try {
    			FileOutputStream fos = new FileOutputStream(fd.getDirectory() + fd.getFile());
    			OutputStreamWriter osw = new OutputStreamWriter(fos);
    			osw.write(s);
    			osw.flush();
    			osw.close();
    			fos.close();	
    		}catch(Exception e) {
    			System.out.println("保存异常");
    		}finally {
    			System.out.println("您的内容保存到了:"+fd.getDirectory()+fd.getFile());
    		}	
    	}
    	//页面设计设计的是Dialog,你按不同的按钮页面会变成不同的颜色
    	public void yemianshezhi() {
    		Dialog d;
    		d = new Dialog(fr,"页面设置",true);
    		d.setBounds(200,200,400,500);
    		Label l = new Label("设置背景颜色,只需点击对应的按钮即可设置成相应的颜色");
    		Button b1 = new Button("红色");
    		Button b2 = new Button("黄色");
    		Button b3 = new Button("蓝色");
    		Button b4 = new Button("绿色");
    		d.add(l,"North");
    		d.add(b1,"Center");
    		d.add(b2,"East");
    		d.add(b3,"South");
    		d.add(b4,"West");
    		d.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
    				System.exit(1);
    		}
    		});
    		b1.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				b1.setBackground(Color.RED);
    			}
    		});
    		b2.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				b2.setBackground(Color.YELLOW);
    			}
    		});
    		b3.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				b3.setBackground(Color.BLUE);
    			}
    		});
    		b4.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				b4.setBackground(Color.GREEN);
    			}
    		});
    		d.setVisible(true);	
    	}
    	public void actionPerformed(ActionEvent e) {
    		System.exit(1);
    	}
    	@Override
    	public void mouseDragged(MouseEvent e) {
    		System.out.println("mouse Dragged");
    	}
    	@Override
    	public void mouseMoved(MouseEvent e) {
    	}
    }
    
    
    展开全文
  • java文本撤销与恢复

    千次阅读 2017-07-12 15:52:47
    文本撤销和恢复是通过 addUndoableEditListener(UndoableEditListener listener)这个方法来注册实现的。只要是Document类及其子类都可以注册撤销和恢复的监听来实现文档的撤销和恢复,这是非常容易实现的。所以...
  • 文本编辑

    2016-11-22 09:10:33
    内含程序代码和课程设计总结...编辑文档可实现撤销、恢复、复制、粘贴、剪切、全选、删除、查找、替换等操作;有自动换行功能,具有字体设置,还可以设置背景色,可以查看状态栏,有鼠标右键,特色是有美观的登录界面
  • 文本编辑器 实现了打开、保存、撤销、字形组合框、颜色单选框、字数统计、行数统计、自动换行、在指定位置插入字符、查找、替换、全选、删除、……………… 程序可供初学者学习使用,主要是简单,本程序纯属自己课堂...
  • 文件包含一个可执行程序,一个工程文件。开发环境是myeclipse。本程序实现的是和windows自带的记事本一样功能和外观的Java程序。
  • RichEditor for Android是一个美丽的富文本WYSIWYG Editor的Android 。 寻找iOS吗? 出 支持功能 大胆的 斜体 下标 上标 删除线 强调 左对齐 辩护中心 证明权利 块引用 标题1 标题2 标题3 标题4 ...
  • 这个文本编辑器,除了打印模块没写、查找和替换别写完整外,其它功能全部完善。撤销最多支持20步,可在程序中根据自己的需要修改。大文件如8MB等文件采用线程打开,有进度条,并且打开同时可以进行其他操作。支持...
  • 3.2 文件设计 3.3 编辑设计 3.4插入设计 3.5格式设计 3.6 帮助设计 第四章 调试与测试 4.1 调试过程 4.2 测试过程 第五章 用户手册 - 第六章 总结 6.1 成功之处 6.2 不足之处 6.3 结论 参考文献
  • 基于java文本编辑器实现,可以对文本进行剪切,复制,粘贴 ,撤销,重做等,同时还添加调试功能基于java文本编辑器实现,可以对文本进行剪切,复制,粘贴 ,撤销,重做等,同时还添加调试功能
  • 仿照windows os 里面的写字板编写文本编辑器程序 主要采用了图形界面,实现了如下功能: (1) 基本的文件操作,包括新建、打开、保存、...(2) 基本的文本编辑操作,包括剪切、复制、粘贴、删除、全选、查找和替换。
  • RichEditor基于原生EditText + span实现的Android富文本编辑器组件描述该组件是基于原生EditText + span的方式实现的,逐步提供一个功能齐全且使用方便的Android富文本编辑器。主要支持了加粗斜体等行内样式,标题...
  • JAVA大作业(1)文本编辑

    千次阅读 2019-11-24 22:10:27
    JAVA - 大作业(1)文本编辑器 > 背景 JAVA上机大作业:qq / 代码评价系统 第一次上机主题是练习JAVA自带的GUI图形化编程 目的:实现一个跟window10记事本界面相同,功能相近的文本编辑器,时间有剩余的话...
  • 12款免费的文本编辑器,包含适用于Windows , Mac或Linux操作系统的。一句话,你能找到你想要的文本编辑器。(Mac, Linux) Bluefish Editor 是一个面向程序员和网页设计师、强大开源的文本编辑器。作为一种快速,轻巧...
  • java 实现我的记事本

    2019-01-04 12:47:38
    撤销/重做:记录用户在编辑区的历史操作,可以进行撤销与重复。  复制/剪切/粘贴:将选中的文本复制到系统剪切板上;将选中的文本剪切到系统剪切板上;将选中的文本粘贴到系统剪切板上  全部选中:将编辑区中...
  • Java文档编辑器的设计,个人原创!!!需求分析、个人工作、概要设计、源程序、程序结果截图、课程设计体会 包括代码素材 = =
  • Editplus--java编辑

    2008-09-16 23:31:01
    java快速编辑java快速编辑java快速编辑java快速编辑java快速编辑java快速编辑
  • 多文档文本编辑器--Multiple Documents Text Editor 使用java语言按照java Bean 规范进行开发,基于MVC模型, 编码规范简洁,结构紧凑,且有详细注释,很适用于java初学者 作为进阶的参考! 该软件实现了多文档编辑...
  • Android 富文本编辑

    2016-12-14 15:52:01
    Android 富文本编辑
  • 2. 编辑器可以撤销,恢复,剪切,复制黏贴文本。 3. 编辑器可以设置编码和解码的格式(慎用) 4. 编辑器支持ctrl+s,ctrl+c,ctrl+v,ctrl+z,ctrl+y等快捷键。 5. 编辑器支持ctrl+鼠标滚轮放大和缩小字体。 6. 编辑器下方...
  • 此系统是使用Java语言实现简易写字板程序,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,全选,撤销等多种基本功能。本系统结构如下:(1)菜单栏:文件模块:要用于操作整个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,275
精华内容 9,710
关键字:

java编辑文本撤销操作