GRAPE标签存档

Grape 开发日志 – 2

  昨天追加了一些功能,经过测试发现了几个问题,今天对其进行了修正。 1、对自定义树节点图标的改进。   问题:自定义...

Grape 开发日志 – 1

今天比较空闲,把 Grape 做了一点修改。 1、修改了几个 bug : a、修复了更换皮肤导致所有打开的文章变为修改状态。 b、修复了设置文章为“只读”后,状态栏没有改变。 2、修改并追加了几个小功能: a、密码输入框改为了 JPasswordField。 b、追加了文章密码设置。 c、查找对话框显示时,将选择的文字做为要查找的对象。 d、自定义节点(文章)图标。 3、接下来的事情: a、实现自动保存功能。 b、实现文章提醒功能。 c、追加“显示”菜单,用来控制各个功能模块(Tab)是否显示。 d、追加功能模块(Tab)拖拽功能。 e、实现全库检索功能。 f、实现文件和程序的关联。(即:默认使用 Grape 打开 *.grp 文件) g、修改“快速启动”和“文件链接”为文件样式。 f、追加剪切板管理工具。

Grape 应用及源码提供下载

接下来的时间又要开始忙了,估计这个程序一时半会做不完了。干脆把目前的成果先放出来,大家可以看看。 本程序分为两部分,Grapevine 和 Grape。Grapevine 是一个 Swing 开发框架,写的比较粗,没时间细写。实现了 OR/M、IOC、Interseptor 等功能,有兴趣的朋友可以了解一下。Grape 是建立在 Grapevine 上的一个知识管理的应用,实现了多文件、多文档编辑、发布日志到 WordPress 等功能。还是没时间,设置基本上都还没时间写,发布日志也比较简化,有时间再好好修改。 config目录下的classes.xml是类的配置文件,所有的对象都是由 Grapevine 生成并注射到程序中去的。包括画面、菜单、事件处理等等。Grapevine.jar 在 lib 目录下。 要运行程序,需要安装 jdk 6,否则程序将无法运行,切记。 程序基本上可以完成基础需求了,不过还没有测试过,可能有很多Bug。我在使用中也遇到了几个小Bug。 本次不是发布,只是接下来没有时间写了,所以把半成品给大家预览一下。目前源代码还没有整理过,注释也乱七八糟的,比...

Grape 的 Skin 处理机制

  Grape 是使用了 Swing 的 Look And Feel 机制来进行换肤的。当然仅仅使用 Look And Feel 是不够的,例如界面图标、浏览样式等等。   为了能够使换肤功能更...

Grape 的编辑器 — WordEditor

WordEditor 是为 Grape 写的一个文字处理器,实现了文字加粗、斜体、字体大小、字体样式、下划线、删除线、居左、居右、居中、文字颜色、文字背景色、插入本地图片、插入互联网图片、分隔线、下沉、上移、超链接、撤销、重做以及快捷键等基本的文字处理功能。也实现了保存为文本文件和 RTF 文件的功能。 WordEditor 支持多国语言,所有的文字以及消息都配置在 properties 文件中。若要生成中文的编辑器,只需要在构造方法中传入“cn”即可。例如:new WordEditor("cn");若要生成英文的编辑器,将“cn”改为"en"即可。日文也相同。当然,前提是 config 文件夹下必需要有这几个配置文件。中文:CN.properties,英文:EN.properties,日文:JP.properties。目前我只做了英文和中文的 properties。 Demo 的启动方法:如果你安装了 JDK1.6 及以上,双击 WordEditor.jar 可直接启动。 使用方法:如果你想在自己的 Swing 程序中使用 WordEditor ,那么可以按照以下方法使用。 ...

测试Grape发布日志功能

本文不是一篇真正意义上的日志,只是为了测试 Grape 日志发布功能,请大家忽略。 刚开始打算写 Grape 的时候,只是想做一个 Swing 下快速开发的框架。当框架开发的差不多的时候,就打算利用它开发一个 Swing 应用程序。终于在这休息的一个多月的时间里,这个应用程序开发了 80%。最主要的功能已经基本实现(还没认真测试)。下图的应用程序就是基于Grape 开发出来的。

Grape主要功能基本完成

  从去年开始设计Grape到现在,已经快一年了。期间总是有一天没一天断断续续的更新,从来没有连续的时间。由其是上一个项目开始后,就一点时间都没有了,导致这段时间没有更新过一段代码。项目大概做了6、7个月,也就是说有6、7个月没有更新Grape了。算了一下从开始到现在投入到Grape上的人时还不到一个月。哎~~   上个月18号项目做完后,终于有了时间,可是半年多没有接触,连自己设计编码的程序都不知从何下手了。于是花了半天将设计和程序大概的过了一遍后,终于重新投入到Grape的开发当中。到现在已经连续更新了18天。什么是grape?grape分为两部分,一部分为内核,提供了简化Swing开发的框架(测试版已经完成)。另一部分为基于grape内核开发的Swing应用。该应用分为几个大功能(在完工前,我保证不说出来),其中最主要的一个功能已经基本实现,目前还在测试中。   不得不承认我是个懒人,若将目标定的很大的话,90%完不成。像现在一样,将目标定的小一点,将工程功能分的细一点,逐一击破是我能够坚持到底的方法。我又是个完美主义者,每次程序时(项目除外),总试图将程序写的漂亮一点、易懂一点...

JTree节点的编辑事件

  利用Swing开发桌面应用程序中,JTree是必不可少的利器,比如Windows的资源管理器的文件夹侧边栏,我们常用的Outlook的侧边栏,Eclipse的Navigator、Package等都使用了Tree控件。   很多情况下,Tree的节点是允许编辑的,调用JTree的setEditable(true)方法可以生成一棵可编辑的树。按下F2键,节点就变为可编辑状态。和Swing中很多组件一样(JList、JTable)JTree并不支持编辑,而我们按下F2时能够进行编辑的其实并不是JTree本身,而是利用另外的JTextField来实现的。所以要想捕获JTree的编辑事件,就不能直接对JTree追加Listener,而是要对当前需要编辑的节点的JTextField追加Listener。   JTree.getCellEditor()可以获得编辑树中条目的编辑器--TreeCellEditor,只要为其追加Listener就可以了。如下: JTeee.getCellEditor().addCellEditorListener(new CellEditorAction()); ...

Grape的消息设计

  Java是面向对象的语言,却不是纯面向对象的语言。为什么这么说呢?在Swing的API中,消息框被设计成静态方法。要知道静态本身就与面向对象相违背的。首先静态是不需要进行实例化的,它的初始化是在任何对象生成之前完成的。若对象中的某个类变量被定义为静态的,那么意味着该对象的所有实例共享该变量。我们可以用一个简单的例子验证,如下: public class Cat { private static String name = "mimi"; public String getName() { return name; } public void setName(String n) { name = n; } public static void main(String[] args) { Cat c1 = new Cat(); Cat c2 = new Cat(); System.out.println("c1 name is " + c1.getName()); System.out.println("c2 name is " + c2.getName()); c1.setName(...

将代码中组件属性提取到配置文件中

  托经济危机的福,终于有时间更新我的 Grape 了。Grape 到底是什么?大家看看 Grape 核心就知道了。Grape 的核心包括数据库的封装、ORM(在1.0版本中针对ORM仅做了最简单的实现,将在下一版本中完善)、拦截器、文件控制、XML解析、对象实例化及注射(反射)、基础的验证管理、Swing 事件的封装以及Swing 界面的封装等。上述的核心代码都已经完成并进行了简单的测试。目前正在利用 Grape 开发一个 Swing 的桌面应用程序,程序的主界面和最为基本功能已经实现。   在利用 Grape 进行开发时,解决了一些问题,也发现了一些更好的实现方法。这两天,将针对 Grape 的核心代码进行了重构,使代码更加清晰,结构也更加合理,当然在性能上也有所提升。另外将原有的组件属性的实现从代码中提取到 XML 配置文件中进行配置,当 Grape 实例化组件时注入对象中。这样做的好处是可以在不需修改代码更不需编译应用程序就可以轻易地修改组件的表现形式。更重要的是,不需要再针对每个组件都写一个 class ,最大化地实现代码重用。比如应用程序有新建和打开两个菜单项,按照传统的做...
Page 1 of 212