快速业务通道

设计具有本机性能的跨平台Java UI:使用JNI来访问SLIK皮肤接口 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
k.evt.*; import jni.skin.slik.widget.*; import jni.skin.util.Debug; public final class SkinDemo implements // listen for:   WindowEventListener, // window evts: Window closed, mouse clicked, mouse dragged    ButtonEventListener, // Button widget clicks   ListEventListener,   // List evts: row clicked, etc...   DialEventListener,  // Dial widget drags   SliderEventListener, // Slider drags    MenuEventListener  // Menu selection events {   ...

C 层中生成的 GTK 小部件事件将通过 JNI 级联地返回到 Java 层。大多数 小部件属性,比如标签、XY 位置以及图形,都是在皮肤规格文件中定义的。

设计具有本机性能的跨平台Java UI:使用JNI来访问SLIK皮肤接口(4)

时间:2011-09-07 ibm Vladimir Silva

加载皮肤数据文件

为了从磁盘加载皮肤规格文件,需要首先初始化 GtkSkin 类,然后注册您希 望监听其事件的小部件,并加载该文件,如清单 3 所示。

清单 3. 从磁盘加载皮肤规格文件

/* * Main function */ public SkinDemo(String[] args) throws GtkSkinException {      ...      // init gtk (create skin window) + JNI debug flag (TRUE/FALSE)      skin = new GtkSkin("My App", GtkSkin.GTK_TRUE);      // Init all widgets: for skin demo purposes (Widgets typically initialized when needed...)      skin.initAllWidgets();      // Create and register some widgets      // See the SPEC file for details      // example: [button_exit], [list_playlist], [number_song], ....      // IMPORTANT: All widgets must exist in SPEC file      // Widget data (imgs, lbls, etc. are defined in the spec file      skin.registerWidget(new WText("title"), "Title goes here!");      skin.registerWidget(new WButton ("exit"));      skin.registerWidget(new WButton("iconify"       ...      /**      * Listen for Skin Window main evts: KeyPress, Mouse motion and Mouse BTN press      */       skin.addWindowEventListener(this);      // load/show      skin.loadSkin(skinPath);      skin.show(); }

GtkSkin("My App", GtkSkin.TRUE)调用将以调试模式初始化 GIMP 运行库。 之后,皮肤规格文件中定义的所有 widget 都必须注册,这样 Java 层才会监听诸如鼠标点击等事件。除了 widget 事件之外,应用程序还必 须监听窗口事件,比如最小化、最大化和关闭窗口命令。最后, loadSkin (path)方法调用将从磁盘读取一个给定的文件路径,而 show()将显示该路径。

设计具有本机性能的跨平台Java UI:使用JNI来访问SLIK皮肤接口(5)

时间:2011-09-07 ibm Vladimir Silva

使用小部件:拨号盘、滑块和弹出菜单

拨号盘和滑块小部件对于设计诸如视频或音频播放器等多媒体应用程序的用 户界面很有用。与所有 SLIK 小部件一样,诸如位置坐标、像素映射和字体等大 多数属性都是在皮肤规格文件中定义的。Java 代码注册这些对象,以便从这些 对象接收事件,如清单 4 所示。

清单 4. 拨号盘、滑块和弹出菜单

// dial widget // see [dial_position] on the skin file for attributes position = new WDial("position"); position.addDialListener(this); skin.registerWidget(position); // More documentation can be found on the SKIN-SPECS file // in th

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号