键盘上的舞者

像写情书一样Coding...
随笔 - 20, 文章 - 0, 评论 - 15, 引用 - 0
数据加载中……

2010年4月9日

Node的属性改变后通知属性表单(Propertites Sheet)更新

Node API提供了一个方法在Node属性集变化时通知注册在其上的监听器更新。
protected final void firePropertySetsChange(Node.PropertySet[] o, Node.PropertySet[] n)

如图,精灵动画就是一个自定义的Node,当使用鼠标将Node从A点拖拽到B点时,Node坐标已经改变,可以调用Node的firePropertySetsChange()方法通知属性表单(Propertites Sheet)更新显示。


因为firePropertySetsChange()是个受保护(protected)的方法,如果需要在Node的外部调用,还可以包装在自定义的公共(public)方法里。
public void notifySheetChange(){
    firePropertySetsChange(
null, Sheet.createDefault().toArray());
}

posted @ 2011-03-06 22:15 陈维 阅读(1232) | 评论 (1)编辑 收藏

使用TopComponent群组

TopComponent群组的作用是在打开一个TopComponent组件的同时,打开其他相关的TopComponent组件。例如,当打开或者激活GUI编辑器的时候,“组件面板”、“属性”窗口和“检查器”窗口都会出现。当需要一个组件同时伴随着很多其他类似于组件面板窗口的时候,利用TopComponent群组可以轻松实现一个组件的激活引发其他组件被打开或者被选中。

定义群组涉及到2XML文件。首先是wsgrp,它代表“窗口系统群组(Window System Group)”。它定义了“窗口系统”的群组,系统根据它的定义查找对应的目录,它也定义了群组是否应该在启动时打开。另一个文件是wstcgrp,它代表“窗口系统TopComponent群组(Window System TopComponent Group)”,这个文件通过ID识别单态的TopComponent组件,同时还定义了一些群组的打开和关闭属性。

TopComponent群组编程实例

首先创建一个模块项目TopComponentGroup然后新建2个窗口组件(TopComponent),命名为EditorTopComponentSatelliteTopComponent,就像窗口的名字所表示的那样,SatelliteTopComponent将会随着EditorTopComponent的打开和关闭一同打开和关闭。

首先新建一个名为EditorGroupWsgrpxml文件,这个文件里定义了名为EditorGroup的编辑器窗口群组。
<group version="2.0">
    
<module name="org.jqueen.nb.topcomponentgroup" spec="1.0" />
    
<name unique="EditorGroup" />
    
<state opened="false" />
</group>

再新建一个名为SatelliteTopComponentWstcgrp的xml文件,在这个文件里可以通过ID识别出SatelliteTopComponent组件
<tc-group version="2.0">
    
<tc-id id="SatelliteTopComponent" />
    
<open-close-behavior open="true" close="true" />
</tc-group>

编辑模块的layer.xml文件,在系统文件系统中的Windows2目录添加一个Group文件夹,将名为"EditorGroup"的群组添加进Group。
<folder name="Groups">
    
<file name="EditorGroup.wsgrp" url="EditorGroupWsgrp.xml"/>
    
<folder name="EditorGroup">
        
<file name="SatelliteTopComponent.wstcgrp" url="SatelliteTopComponentWstcgrp.xml"/>
    
</folder>
</folder>

编辑EditorTopComponent内容,重写TopComponent类的componentOpened()和componentClosed()方法,在EditorTopComponent被打开和关闭时打开和关闭名为"EditorGroup"的群组。
    @Override
    
protected void componentOpened() {
        TopComponentGroup group 
= WindowManager.getDefault().findTopComponentGroup("EditorGroup");
        
if (group != null) {
            group.open();
        }
    }

    @Override
    
public void componentClosed() {
        TopComponentGroup group 
= WindowManager.getDefault().findTopComponentGroup("EditorGroup");
        
if (group != null) {
            group.close();
        }
    }

至此,就完成了一个TopComponent群组的编辑。执行模块项目,当从窗口菜单中打开EditorTopComponent时SatelliteTopComponent会自动打开,EditorTopComponent被关闭时SatelliteTopComponent也会自动关闭。

样例程序下载

posted @ 2010-08-07 22:46 陈维 阅读(1577) | 评论 (0)编辑 收藏

JavaFX进行HTTP Basic认证

最近用JavaFX写一个应用调用Internet上的开放API时需要进行HTTP Basic认证,JavaFX提供了一个类HttpRequest用于发送Web服务的请求,类HttpHeader顾名思义就是用来表示HTTP请求的"Header"了。HttpHeader提供了一个很方便的方法用来创建HTTP Basic认证需要的用户名和密码"Header":
public basicAuth(username: java.lang.String, password: java.lang.String) : HttpHeader
下面就看一下如何使用JavaFX编写进行HTTP Basic认证的代码:
// var user = "user";
// var password = "password";
HttpRequest{
    location: 
// url
    headers: HttpHeader.basicAuth(user, password)
    
// 
}.start();

posted @ 2010-04-25 02:49 陈维 阅读(1501) | 评论 (0)编辑 收藏

本公司的几个开发类职位的招聘(上海)

有兴趣的朋友可以先给我发简历,谢谢谢谢谢谢谢谢。
chenweionline#hotmail.com

公司基本信息可以访问
www.jaiziworld.com
www.ccjoy.com

51job上的发布链接
http://search.51job.com/list/co,c,2088688,0000,10,1.html

Java/JavaFX富客户端应用开发工程师

岗位职责:
在Java平台上进行网络游戏相关客户端产品的研发。

任职要求:
1.Java SE基础扎实,了解常用设计模式并且能够在开发过程用适当的应用;
2.熟悉AWT/Swing,Java 2D,JavaFX,NetBeans Platform编程技术;
3.诚实守信,具有良好的团队合作精神,具有迎接挑战的信心和对工作的激情。

优先条件:
1.熟悉游戏相关业务或者有相关游戏、编辑器工具开发经验者;
2.熟悉JavaScript,Flash/Flex,Silverlight等其他RIA开发技术;
3.熟悉Java ME,Android,Windows Mobile,Symbian,iPhone等移动技术平台开发。


Java服务器端开发工程师

岗位职责:
1.具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力;
2.负责网络游戏服务器端应用逻辑的编写,分布式系统的架构设计;
3.编写相关的开发文档;
4.与项目组美术与策划人员深入沟通,准确实现开发需求。

任职要求:
1.熟悉Java语言,熟练掌握J2EE相关技术;
2.熟悉常用设计模式、数据结构、算法;
3.熟练使用:eclipse、PowerDesigner、UML建模、Word、Excel等常用开发工具。

优先条件:
1.熟悉游戏相关业务或者有相关开发经验者。


移动设备应用开发工程师

岗位职责:
1.在主流的移动平台上开发互联网服务产品。

任职要求:
1.可以熟练使用JavaME,Android或iPhone平台编程技术进行开发。

优先条件:
1.2年以上移动平台应用开发经验;
2.具有个人作品者优先。


游戏算法研发工程师

岗位职责:
1.从事网络游戏相关的技术研发和算法优化工作。

任职要求:
1.数学、人工智能或计算机专业硕士以上学历,数学基础扎实;
2.熟悉图像处理、模式识别、计算机视觉等方面的知识;
3.熟练掌握数值计算相关理论和方法,对算法的并行处理和优化有经验的优先;
4.能够编写技术文档。

优先条件:
1.熟悉Java语言优先

posted @ 2010-04-15 15:24 陈维 阅读(247) | 评论 (0)编辑 收藏

JavaFX开发模仿Mac OS的MagicalDock(鱼眼效果)

launch
MagicalDock修改了上个版本的设计,目前的思路是使用2个容器类Container和Flow完成布局,Flow为Node提供水平布局,Container是Flow的容器。
当鼠标移动到Node上,Node大小变化时会改变Flow的尺寸范围,这时动态调整Flow在Container中的位置完成水平位移效果并且将锚定Node的底部使一组Node在变化时都能够底线对齐。

posted @ 2010-04-09 17:58 陈维 阅读(1953) | 评论 (2)编辑 收藏