快速业务通道

LWUIT自定义灵活Style的Component - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

LWUIT自定义灵活Style的Component

时间:2010-12-09 博客园 Sunny Peng

当你使用LWUIT的这些Component时,如果一个页面中的布局比较复杂,组件 很多,而且页面比较多时,常用的组件诸如 Label,Button,TextField,TextArea 等会用的非常平凡。用起这些组件时,我们常常会设置它的Style,Style很像 web里的css,它能够让我们自定义 Border,Font,FgColor,BgColor,Margin,Padding,设置一个组件的 Style的代码 很简单:

代码

this.getStyle().setBorder(Border border)

但是大多数的组件都有Style和selectedStyle,能够被点击的Button及其子 类还有pressedStyle,以上面一句为例,它仅仅只能设置这个组件未选中的时候 的Border,当选中它时,又会回到系统代码中设定的模样。一个页面有很多组件 ,大多数的组件都要设置 Style(选中和未选中的Style),虽然代码是很简单 ,但是一个页面写下来,你会发现你至少一半的代码都花在布局和设置样式上了 ,代码看起来非常臃肿。

好在LWUIT是开源的,我们可以修改它的源代码来自定义这些UI的方法,找到 Component.java文件,我们只需要在这个文件中添加几个方法来简化我们的 Style设置。

以下是我在Component.java类中添加的一些方法,代码我写的比较粗糙,你 们可以按照自己的方式来写, 理论上每个方法都应该有两个参数,未选中和选 中的状态,传参时可以为null,需要进行一些判断以适合大多数的情况。

代码

//1469行起是添加的代码      /**       * 设置自定义的Font       * @param font       */      public void setCustomFont(Font font) {          this.getStyle().setFont(font);          this.getSelectedStyle().setFont(font);      }      /**       * 设置水平方向Margin       * @param margin       */      public void setCustomHorizontalMargin(int margin) {          this.getStyle().setMargin(Component.LEFT,  margin);          this.getStyle().setMargin(Component.RIGHT,  margin);          this.getSelectedStyle().setMargin(Component.LEFT,  margin);          this.getSelectedStyle().setMargin(Component.RIGHT,  margin);      }      /**       * 设置自定义的Border       * @param border       */      public void setCustomBorder(Border border){          this.getStyle().setBorder(border);          this.getSelectedStyle().setBorder(border);      }      /**       *设置自定义FgColor       * @param unsectedColor       *              未选中时的颜色       * @param selectedColor       *              选中时的颜色       */      public void setCustomFgColor(int unsectedColor, int  selectedColor){          this.getStyle().setFgColor(unsectedColor);          this.getSelectedStyle().setFgColor (selectedColor);      }      /**       * 设置自定义的Style       *              Style包含选中和未选中的情况 ,属性包含Margin,Padding,Border,FgColor,BgColor,Font等       * @param unselectedStyle       * @param selectedStyle       */      public void setCustomStyle(Style unselectedStyle, Style  selectedStyle){          this.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号