仓酷云

标题: 了解下JAVA的用java完成编纂器的取消、重做功效 [打印本页]

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




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2