仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 730|回复: 12
打印 上一主题 下一主题

[学习教程] 了解下JAVA的用java完成编纂器的取消、重做功效

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,netBeans等等,但是我认为如果java想超越.net,那么他首先要解决的就是IDE工具的整合。
用java完成编纂器的取消、重做功效,十分的便利,上面是一个完成这个功效的类,
importjava.awt.event.ActionEvent;
importjavax.swing.AbstractAction;
importjavax.swing.Action;
importjavax.swing.JEditorPane;
importjavax.swing.KeyStroke;
importjavax.swing.event.UndoableEditEvent;
importjavax.swing.event.UndoableEditListener;
importjavax.swing.text.JTextComponent;
importjavax.swing.undo.CannotRedoException;
importjavax.swing.undo.CannotUndoException;
importjavax.swing.undo.UndoManager;
/**
*UndoWrapperisresponsibleforaddingundoandredosupporttotextcomponents.
*@authorAntonioVieiro(antonio@antonioshome.net),$Author:$
*@version$Revision:$
*/
publicclassUndoWrapper
 implementsUndoableEditListener
{
 privateUndoManagerundoManager;
 privateUndoActionundoAction;
 privateRedoActionredoAction;
 privateJEditorPanetextComponent;

 /**
 *CreatesanewinstanceofUndoWrapper
 */
 publicUndoWrapper(JEditorPaneaComponent)
 {
  textComponent=aComponent;
  undoManager=newUndoManager();
  undoAction=newUndoAction();
  redoAction=newRedoAction();
  textComponent.getDocument().addUndoableEditListener(this);
  textComponent.getInputMap().put((KeyStroke)undoAction.getValue(
Action.ACCELERATOR_KEY),"undo");
  textComponent.getInputMap().put((KeyStroke)redoAction.getValue(
Action.ACCELERATOR_KEY),"redo");
  textComponent.getActionMap().put("undo",undoAction);
  textComponent.getActionMap().put("redo",redoAction);
 }

 publicvoidundoableEditHappened(UndoableEditEvente)
 {
  undoManager.addEdit(e.getEdit());
  undoAction.updateUndoState();
  redoAction.updateRedoState();
 }

 /**
 *UndoActionistheActionresponsibleforhandlingtheundooperation.
 */
 classUndoAction
  extendsAbstractAction
 {
  publicUndoAction()
  {
   super("Cannotundo");//TODO:I18N
   setEnabled(false);
   putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrlZ"));
  }

  publicvoidactionPerformed(ActionEvente)
  {
   try
   {
    undoManager.undo();
   }
   catch(CannotUndoExceptioncue)
   {
    //TODO:Uselogging?
    cue.printStackTrace(System.err);
   }
   updateUndoState();
   redoAction.updateRedoState();
  }

  voidupdateUndoState()
  {
   if(undoManager.canUndo())
   {
    setEnabled(true);
    putValue(Action.NAME,"Undo");//TODOI18N
   }
   else
   {
    setEnabled(false);
    putValue(Action.NAME,"Cannotundo"); //TODOI18N
   }
  }
 }

 /**
 *RedoActionistheActionresponsibleforhandlingtheredooperation.
 */
 classRedoAction
  extendsAbstractAction
 {
  publicRedoAction()
  {
   super("Cannotredo"); //TODOI18N
   setEnabled(false);
   putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke("ctrlY"));
  }
  publicvoidactionPerformed(ActionEvente)
  {
   try
   {
    undoManager.redo();
   }
   catch(CannotRedoExceptioncre)
   {
    //TODO:Uselogging?
    cre.printStackTrace(System.err);
   }
   updateRedoState();
   undoAction.updateUndoState();
  }

  voidupdateRedoState()
  {
   if(undoManager.canRedo())
   {
    setEnabled(true);
    putValue(Action.NAME,"Redo"); //TODOI18N
   }
   else
   {
    setEnabled(false);
    putValue(Action.NAME,"Cannotredo"); //TODOI18N
   }
  }
 }

 UndoActiongetUndoAction()
 {
  returnundoAction;
 }

 RedoActiongetRedoAction()
 {
  returnredoAction;
 }
}
利用的时分,只必要将你创立的JEditorPane作为对象传进UndoWrapper中便可。利用体例以下newUndoWrapper(editorPane);
OK如许你的编纂器就具有了UndoRedo功效,并且是次数不收限定的。

JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-19 05:25:00 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-24 06:46:11 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
分手快乐 该用户已被删除
地板
发表于 2015-1-26 21:52:04 | 只看该作者
是一种突破用户端机器环境和CPU
精灵巫婆 该用户已被删除
5#
发表于 2015-2-3 08:38:47 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-5 06:28:23 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
小妖女 该用户已被删除
7#
发表于 2015-2-11 06:36:48 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
admin 该用户已被删除
8#
发表于 2015-2-11 08:08:20 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再现理想 该用户已被删除
9#
发表于 2015-2-22 07:16:10 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
只想知道 该用户已被删除
10#
发表于 2015-3-3 03:23:10 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
再见西城 该用户已被删除
11#
 楼主| 发表于 2015-3-5 19:17:19 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
老尸 该用户已被删除
12#
发表于 2015-3-12 11:41:09 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
山那边是海 该用户已被删除
13#
发表于 2015-3-19 21:31:25 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 09:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表