LWUIT 自定义灵活Style的Component
2009-12-01 00:00:00 来源:WEB开发网当你使用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.setStyle(unselectedStyle);
this.setSelectedStyle(selectedStyle);
}
- ››灵活运用ISA的链接转换功能:ISA2006系列之十三
- ››灵活配置DHCP服务器 解决更改IP地址问题
- ››灵活有效的数据仓库解决方案:第1部分:客户互动和...
- ››灵活有效的数据仓库解决方案,第3部分:设计并实现...
- ››LWUIT 1.3终于发布了!
- ››LWUIT 自定义灵活Style的Component
- ››灵活使用Word 2003文档窗口的滚动条
- ››LWUIT + ChartComponent 之一实现饼图(PieChart)
- ››LWUIT + ChartComponent 之二实现线形图(LineChar...
- ››灵活设置Windows Server 2008应对系统管理谜局
- ››定义防御TCP SYN拒绝服务攻击的策略
- ››灵活有效的数据仓库解决方案: 第 1 部分:客户互动...
更多精彩
赞助商链接