论坛首页 Java企业应用论坛

开源项目Visual Swing for Eclipse

浏览 125001 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-12-12   最后修改:2008-12-12
最新更新:添加对第三方外观(look and feel)的集成。集成方法如下:
在<workspace>/.metadata/org.dyno.visual.swing.lnfs目录下创建目录lookandfeel和一个相应lookandfeel的子目录,并将类库的jar文件和源文件(如果有的话,用来调试)拷贝到该目录下,如下图所示:

用编辑器编辑一个laf.xml文件放在该目录下,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<lookandfeel name="JGoodies Look And Feel" 
	class="com.jgoodies.looks.plastic.Plastic3DLookAndFeel">
	<classpath jar="looks.jar" src="looks.zip"/>
	<component class="javax.swing.JLabel">
		<property name="text" default="null"/>
                ......
	</component>
</lookandfeel>

其中name指定该外观的名称,class指定LookAndFeel类,classpath元素指定类路径(相对于laf.xml所在目录),component元素定义每种组件属性的缺省值(用来代码生成)。
重新启动eclipse,在在Java Project的属性对话框的java build path选择Add Library,然后选择Visual Swing Extension Library,Next之后可以发现该LookAndFeel的类库已经加入了。选择之。如下图所示:

这时的可视化设计器的右键菜单中就会有这个新LookAndFeel的支持,如下图所示:

上图是一个添加JGoodies Look And Feel的例子。
以后会在Eclipse的Preference Dialog中直接配置第三方的LookAndFeel,生成这些文件结构和laf.xml,目前因时间关系只能通过手工配置。
0 请登录后投票
   发表时间:2008-12-12   最后修改:2008-12-12
下面是我刚才下载了NapkinLookAndFeel并配置之后的结果,呵呵,挺不错的LookAndFeel,很有趣味:-)

0 请登录后投票
   发表时间:2008-12-19  
确实不错,看来楼主的swt/jface,swing都很精通
0 请登录后投票
   发表时间:2008-12-22  
楼主您好
非常喜欢您的插件

简述一下我使用中遇到的问题
TitledBorder不能自定义标题内容 自己改了会被覆盖
jButton1.setText(sdf.format(new Date()));
用样也会被字符串覆盖 只能写死

0 请登录后投票
   发表时间:2008-12-22   最后修改:2008-12-22
mayday85 写道
楼主您好
非常喜欢您的插件

简述一下我使用中遇到的问题
TitledBorder不能自定义标题内容 自己改了会被覆盖
jButton1.setText(sdf.format(new Date()));
用样也会被字符串覆盖 只能写死


目前的代码解析部分是有一些限制规则的,对于getXXXX内的代码只能设置静态的值,动态的值会被该表达式计算的静态值所代替,你可以将这些代码放在initComponent方法调用之后初始化,这样就不会被覆盖。比如:
public class MyJPanel extends JPanel{
    ...
    public MyJPane(){
        initComponent();
        jTextField1.setText(new Date().toString());
    }
    ...
    private JTextField getJTextField1(){
       if(jTextField1==null){
            jTextField1=new JTextField();
       }
       return jTextField1;
    }
}

上面的代码在修改界面设计后,重新生成代码时,jTextField1.setText(new Date().toString());不会被覆盖。
注意initComponent和各个组件的get方法都是这样的,只能修改设置静态的值。比如
    private JTextField getJTextField1(){
        if(jTextField1==null){
            jTextField1=new JTextField();
            jTextField1.setText("你好");
        }
        return jTextField1;
    }

但是除了这些方法外的任何方法都是不会被生成的代码所覆盖的,因此你可以在其他方法中设置这些动态的值并在构造函数中调用。

第一个问题,TitledBorder标题不能更新,我检查一下,的确是一个bug,发现是最近重构代码造成一个回归问题,现在已经修正,只要下载最新版本安装就可以了。

谢谢你反馈的问题!
0 请登录后投票
   发表时间:2008-12-22   最后修改:2008-12-22
为了和Eclipse社区的开源文化和精神相一致,也为了更好的推广,方便商业采用,现在已经把该款工具改成在EPL v1.0(Eclipse Public License version 1.0)授权协议下发布。
0 请登录后投票
   发表时间:2008-12-22  
很好,楼主很厉害。我对Swing还算熟悉。做过基于它的报表设计器。虽然功能不完整,但是一个人做的。不知道怎么参加这个项目和你合作?
0 请登录后投票
   发表时间:2008-12-23  
http://www.iteye.com/topic/299937

用楼主的插件写的记账本
0 请登录后投票
   发表时间:2008-12-26  
swing我不太熟悉,不过还是感谢楼主所做的工作,楼主是个好人!
0 请登录后投票
   发表时间:2008-12-29   最后修改:2009-03-25
不错,支持!不知道左上角的ico图标能否换掉,swing自带的很难看
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics