当前位置: 首页 > 编程日记 > 正文

Eclipse进行可视化的GUI开发3大GUI插件

Eclipse进行可视化的GUI开发3大GUI插件

转自http://www.cnblogs.com/NationWoo/archive/2011/05/31/2065176.html

Eclipse并不自带GUI的可视化开发工具,那么如果要在Eclipse进行可视化的GUI开发,就需要依靠第三方的插件。

1. Visual Editor

Eclipse官方提供了一个叫做Visual Editor(VE)的开源GUI插件,功能还是比较强。可以根据用户的界面GUI设计,自动生成相应的JAVA代码。同样也可以通过相应的JAVA代 码,生成其匹配的可视化GUI编辑界面。不过VE缺点比较大,我从3.1到3.2之前一直在用VE,没有多少改观。VE是通过另外启动一个JVM来模拟执 行GUI的class,然后在Eclipse的界面内生成一个可视化效果。

回顾一下Visual C ,NetBeans等其它IDE进行GUI可视化的方法,都是基于另外一个界面管理资源文件,非用户可以直接修改的。而直接通过程序代码来管理可视化的GUI编辑器,就需要极强的代码parse能力。很可惜,VE想这样做,确没有能够做到。

VE使用起来问题很多,网上有网友直接评价说VE是“可用性不强”。我自己用起来的感觉,问题就出在一下几个方面:

1). 另外启动JVM速度很慢,而且如果要同时打开几个Visual Class,那么就要启动几个JVM,内存消耗也大。而且,有些时候,反复打开关闭一个Visual Class,JVM还启动不起来。

2). 对于用户自己编辑的可视化Java代码的parse能力很弱。常见的错误就是,明明是正确的可视化GUI代码,但是VE里面窗口打开半天,结果只能显示一 把叉。很多时候,就根本不能显示出一个完整的可视化窗口。而对于窗口上某个控件的定位能力不强,用户自己的代码稍微转几道弯儿,VE就不知道这个控件是在 哪里产生的了,顶多只能显示出来,但是无法可视化编辑。

4). 3.1的VE编辑的代码到了3.2的VE里面,显示出来完全不一样了。

5). 安装比较麻烦,还需要用户自行去安装不只一个的辅助插件。

综上所述,VE真的“可用性不强”

2. SWT-Designer

SWT-Designer是大家公认的,最强的Eclipse下开发GUI的插件 http://www.swt-designer.com/。很多Eclipse书籍上都是直接拿SWT-Designer来讲解如何在Eclipse开 发GUI界面程序。不过SWT-Designer是一个收费的插件。不收费的是基础版本,功能受到很大的限制。当然,网上也有完整版的破解版。SWT- Designer做得比较大,6.0最新的安装文件有几十M,可想其功能之强大。

3. jigloo

jigloo严格意义上来说也是收费的,不过他提供了non_commercial的版 本,而这个版本的功能和commercial是完全一样的http://www.cloudgarden.com/jigloo/。作为个人开发来说,是 不受限制的。jigloo很小,最新的版本才3MB多,安装也比较简单。

jigloo同时支持SWT和Swing。

jigloo也是完全基于Java代码的,不过它的code parse的能力远比VE要强,也要快。至少我很多在VE下出现问题,不能显示的Visual Class可以很好地在jigloo下编辑,至今还没有遇到jigloo不能编辑,parse出错的时候。而jigloo还可以集成了一写比较好的 Java GUI风格代码的支持,功能上比VE要强大一些。

当然,3MB多的插件,再强也强不过SWT-Designer完整版的,但是比其基础版 的要好很多。而SWT-Designer也并不是完全基于JAVA开发的,比如Windows版本的,还携带了dll文件。而jigloo是完全基于 JAVA开发的,下载下来只有一个class的zip文件,也支持Eclipse的在线安装。

二 jigloo的安装和使用

jigloo的安装很简单,和其它Eclipse插件一样,不需要任何安装程序,直接解压出来就行了。

创建新的窗口,直接输入File->New->Others->GUI Forms就可以了。

而如果要打开一个已经存在的Visual Class,可以直接右键点击,选择Open With->Form Editor打开就可以了。打开后,首先要进行code parse,不过这个速度很快,也不需要像VE那样还启动一个JVM。

下面是我的Eclipse下使用jigloo的截图:

三. 总结

根据3大Eclipse的GUI开发插件可以看出,基本都是基于Java code的GUI编辑管理。这种编辑器管理,当然就比以前Visual C 那样管理Windows界面程序要困难很多。但是,现行的很多IDE,比如Visual Studio .NET,2005都还是能够做得比较快。主要的就是要看起code parsing的能力。

VE前面的缺点已经总结得比较多,不知道这个官方的插件什么时候才能让人真正放心。作为开发者来说,心里还是最想给VE加把劲的,毕竟VE是开源的,随便用的。

SWT-Designer功能最强大,可惜价格不低。而jigloo可谓介于两者之间,对于个人开发者来说,可以免费使用,而且其功能也足够到开发各种大型的GUI应用程序了,应该是一个合适的选择。

posted on 2012-10-18 10:44 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/archive/2012/10/18/2729070.html

相关文章:

【BZOJ 4016】[FJOI2014]最短路径树问题

! 卡时过了 为什么我的这么慢?姿势不对??? -->谢 ws_fqk 我的Do(num[i])应该用 DO(root) 找了半天的root居然没有用.... define的教训永远忘不了了!!! 优化…

mongodb索引--从55.7秒到毫秒级别

从头开始,验证mongodb的索引的好处。(window7环境下) 下载mongodb服务器,并解压到d盘,并使用以下命令启动 mongod --dbpath D:\mongodb\datamongo客户端Robo 3T 去官网下载,安装准备数据,条数为1亿public static void …

汉字转16进制java_java实现汉字转unicode与汉字转16进制实例

本文实例讲述了java实现汉字转unicode与汉字转16进制的实现方法。分享给大家供大家参考。具体实现方法如下&#xff1a;一、汉字转unicodepublic static String toUnicode(String s){String as[] new String[s.length()];String s1 "";for (int i 0; i < s.len…

使用pytest对django项目单元测试

2019独角兽企业重金招聘Python工程师标准>>> 背景 使用django开发了个人博客&#xff0c;欲单元测试&#xff0c;后遍寻网络&#xff0c;然相关资料甚少&#xff0c;遂成此文&#xff0c;望对汝有所助 环境 pytestpytest-djangopytest-covpytest-htmldjangomixer测试…

jquery通知插件toastr

使用方法3个简单步骤对于其他API调用,看到演示。<link href"toastr.css" rel"stylesheet"/> <script src"toastr.js"></script> //显示一个信息没有标题 toastr.info(Are you the 6 fingered man?)其他选项/显示一个警告,没有…

1282. Game Tree

http://acm.timus.ru/problem.aspx?space1&num1282 简单博弈 注意题意的理解 代码&#xff1a; #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<vector> #include<queue> #include<map> #i…

java web dao_JavaWeb项目,DAO应该怎么写?

有一张字段足够多的表&#xff0c;要对它进行各种各样的查询&#xff1a;根据字段A根据字段B&#xff0c;或者根据字段A和B&#xff0c;或者再加上字段C&#xff0c;然后可能还要加上分页&#xff0c;排序等等的逻辑。现在的项目的DAO层为了满足上面这些需要出现了很多参数列表…

2016 - 1- 21 - RunLoop使用(2016-1-24修改一次)(2016 - 1 - 24 再次修改)

一&#xff1a;常驻线程 &#xff1a;当需要一个线程一直处理一些耗时操作时&#xff0c;可以让它拥有一个RunLoop。具体代码如下&#xff1a; 1.通过给RunloopMode里加源来保证RunLoop不直接退出。 这里有个很重要得知识点&#xff0c;runloop对象如果mode为空得话&#xff…

【BZOJ1016】【Luogu P4208】 [JSOI2008]最小生成树计数 最小生成树,矩阵树定理

蛮不错的一道题&#xff0c;遗憾就遗憾在数据范围会导致暴力轻松跑过。 最小生成树的两个性质&#xff1a; 不同的最小生成树&#xff0c;相同权值使用的边数一定相同。不同的最小生成树&#xff0c;将其都去掉同一个权值的所有边&#xff0c;其连通性一致。这样我们随便跑一个…

Asterisk安装

一、获取asterisk安装包wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.0.tar.gz后面的版本号可以改变&#xff0c;可以安装的版本可以参考http://downloads.asterisk.org/pub/telephony/asterisk/releases/二、解压安装1. [root~]# tar -z…

java编写一个通讯录_java写的通讯录(小玩意)

上次有发个超级菜鸟级别的连接access的小程序受兄弟委托&#xff0c;如今表妹期末了&#xff0c;要写个通讯录于是草草的给写了个&#xff0c;毕竟有一个学期了&#xff0c;所以这次的代码会比较合理些……使用说明:实现技术:java语言,界面采用java swing编程,数据库用access数…

20175203 2018-2019 实验五《网络编程与安全》

20175203 2018-2019 实验五《网络编程与安全》 知识重点&#xff08;摘自实验资料&#xff09; 栈 &#xff1a;(Stack)是一种只允许在表尾插入和删除的线性表&#xff0c;有先进后出&#xff08;FILO&#xff09;&#xff0c;后进先出(LIFO)的特点。允许插入和删除的一端称为栈…

统计文件种类数+获取子shell返回值的其它方法

前言 只是作为一个shell的小小练习和日常统计用&#xff0c;瞎折腾的过程中也是摸到了获取子shell返回值的几种方法&#xff1b; 肯定还有别的方法&#xff0c;跟进程间的通信相关&#xff0c;希望你能提出建议和补充&#xff0c;谢谢~ 完整程序&#xff1a; #! /bin/bash #检查…

java中next的用法_关于java iterator的next()方法的用法

UYOUnext()是java迭代器类(Iterator)的方法&#xff0c;获得当前游标指向的下一个元素&#xff0c;详细说明和应用如下&#xff1a;1、迭代器(Iterator)介绍  迭代器是一种设计模式&#xff0c;它是一个对象&#xff0c;它可以遍历并选择序列中的对象&#xff0c;而开发人员不…

Python如何进行cross validation training

以4-fold validation training为例 (1) 给定数据集data和标签集label 样本个数为 sampNum len(data)(2) 将给定的所有examples分为10组 每个fold个数为 foldNum sampNum/10 (3) 将给定的所有examples分为10组 参考scikit-learn的3.1节&#xff1a;Cross-validation 1 impor…

Python的while循环

2019独角兽企业重金招聘Python工程师标准>>> 1.while循环的格式 while 条件:条件满足时&#xff0c;做的事情1条件满足时&#xff0c;做的事情2条件满足时&#xff0c;做的事情3...(省略)...demo i 0while i < 5:print("当前是第%d次执行循环" % (i …

LeetCode Add Binary

Given two binary strings, return their sum (also a binary string). For example,a "11"b "1"Return "100". 这题用数组来做可能更简单&#xff0c;但考虑到可能面试的时候要求不能开额外的数组&#xff0c;就只能对string操作了。最主要的…

linux java内存分析_Java内存分析利器MAT使用详解

这是一篇阅读MAT helper的笔记。Heap dump是Java进程在特定时间的一个内存快照。通常在触发heap dump之前会进行一次full gc&#xff0c;这样dump出来的内容就包含的是被gc后的对象。dump文件包含的内容&#xff1a;1&#xff0c;全部的对象&#xff1a;类&#xff0c;域&#…

[js] MD5算法

js版md5算法&#xff1a; /** * * MD5 (Message-Digest Algorithm) * http://www.webtoolkit.info/ * **/var MD5 function (string) {function RotateLeft(lValue, iShiftBits) {return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));}function AddUn…

vue中的时间过滤器

//全局过滤器&#xff0c;进行时间的格式化//所谓的全局过滤器即使所有的vue实例都共享的Vue.filter(dateFormat ,function(dateStr, pattern""){//根据给定的时间字符串&#xff0c;得到特定的时间var dt new Date(dateStr)//yyy---mm-ddvar y dt.getFullYear() /…

windows线程同步-原子操作-Interlocked系列函数(用户模式)

Interlocked系列函数用来保证原子访问。InterlockedExchangeAdd提供保证long类型的原子操作。InterlockedExchangeAdd64提供long long 64位的原子操作。搞不懂为什么不提供int类型的&#xff0c;int类型转换成long类型就是2个不同内存地址的变量&#xff0c;再来对long类型进行…

java 比较器comparator_Java中比较器的使用Compare和Comparator

Comparable和Comparator接口都是为了对类进行比较&#xff0c;众所周知&#xff0c;诸如Integer&#xff0c;double等基本数据类型&#xff0c;java可以对他们进行比较&#xff0c;而对于类的比较&#xff0c;需要人工定义比较用到的字段比较逻辑。可以把Comparable理解为内部比…

20160127:开始学VBA:(三)、判断语句

IIF函数判断 Sub 判断4() Range("a3") IIf(Range("a1") < 0, "负数或零", "负数")End Sub Sub 判断1() 单条件判断 If Range("a1").Value > 0 Then Range("b1") "正数" Else Range(…

java jdk中的归并排序实现

在Arrays.java中的sort中public static void sort(Object[] a, int fromIndex, int toIndex) {if (LegacyMergeSort.userRequested)legacyMergeSort(a, fromIndex, toIndex);elseComparableTimSort.sort(a, fromIndex, toIndex);}/** To be removed in a future release. */pri…

LeetCode.3-最长无重复字符子串(Longest Substring Without Repeating Characters)

这是悦乐书的第341次更新&#xff0c;第365篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Medium级别的第2题Longest Substring Without Repeating Characters&#xff08;顺位题号是3&#xff09;。给定一个字符串&#xff0c;找到最长无重复字符子字符串的长度。例如&am…

java代码操作git_JGit--实现Git命令操作的Java API

问题来源:最近在做一个项目&#xff0c;其中有一块需要用户上传代码到服务器中&#xff0c;然后分析用户所传的代码&#xff0c;传代码最直接的方式就是用户打个包上传&#xff0c;但是后期再分析代码的时候还要代码实现解压上传的代码&#xff0c;操作起来比较复杂。解决方案与…

Python学习(一) 安装,环境搭建,IDE

第一篇废话太多了&#xff0c;我的博客最主要的是给自己看的&#xff0c;大家觉得还凑合也可以看看&#xff0c;能说自己想法的就更好了&#xff0c;因为一个人的思想是有局限性的。集思广益&#xff0c;自己的认知才不会被禁锢。 注&#xff1a;其他的系统没装&#xff0c;在W…

桑叶黑芝麻糊,从头到脚通补

人体通补手册:丹道医学中的养命之术/武国忠著. —南京&#xff1a;江苏人民出版社&#xff0c;2009.8&#xff08;国医健康绝学系列&#xff09;ISBN 978-7-214-05938-3 桑叶黑芝麻糊&#xff0c;从头到脚通补 桑叶味甘、苦&#xff0c;性寒&#xff0c;可以入肝、肺经&#xf…

CSS jQuery制作漂亮的文字模糊效果

CSS3漂亮的模糊效果 运用CSS3 和 jQuery 以及其他javascript框架&#xff0c;将 CSS模糊效果发挥到极致. 本文底部可提供下载以及预览&#xff0c;并且包含了所有需要的文件包。 1. 烟雾模糊效果&#xff1a; 2.彩色灯晕效果 3. 鼠标悬浮模糊效果 4, 模糊效果 5&#xff0c;随机…

java 三维全景_3D开发-全景技术基础

全景&#xff0c;英文名(Panorama)&#xff0c;又被称为3D实景&#xff0c;是一种新兴的富媒体技术&#xff0c;其与视频&#xff0c;声音&#xff0c;图片等传统的流媒体最大的区别是“可操作&#xff0c;可交互”。 全景分为虚拟现实和3D实景两种。虚拟现实是利用maya等软件&…