开发学院软件开发Java Flex Hack 01: labelFunction的使用 阅读

Flex Hack 01: labelFunction的使用

 2009-09-23 00:00:00 来源:WEB开发网   
核心提示:写过Swing的人都知道,如果使用List的组件或包含List组件如JComboBox,Flex Hack 01: labelFunction的使用,他们的item需要显示几个字段的时候,需要做额外的动作,下面看例子代码:<?xmlversion="1.0"encoding="utf

写过Swing的人都知道,如果使用List的组件或包含List组件如JComboBox,他们的item需要显示几个字段的时候,需要做额外的动作,比如

在List需要显示的对象添加一个toString方法便能组合显示出想要的效果,但是有时候一个POJO或VO又不允许你添加这么一个方法。这个时候就需要在Renderer中利用反射的机制能解决所需要的方法。

但是在Flex中就能很方便的解决这样的问题,对于显示一个字段,只需要指定对应字段属性给labelField即可,当需要上述所需要的功能的时候就得做个转换了,在Flex的基于List的组件都有一个labelFunction方法能很简单指定所需要显示的内容。

如有这么一个例子,有一个对象他包含一个name和age,现在需要一个ComboBox显示为:“name,age”,下面看例子代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
     creationComplete="init()" backgroundColor="white">
    <mx:Script>
        <![CDATA[
            
            [Bindable]
            private var cbxDataProvider:Array;
            
            private function init():void
            {
                cbxDataProvider = [
                            {name:"kissjava", age:"100"},
                            {name:"rocky", age:"88"},
                            {name:"jiang", age:"99"}
                ];
            }
            
            private function cbxDisplayFunction(data:Object):String
            {
                var label:String = "";
                if(data.hasOwnProperty("name")){
                    label += data.name + ",";
                }
                if(data.hasOwnProperty("age")){
                    label += data.age;
                }
                
                return label;
            }
        ]]>
    </mx:Script>
    <mx:Text id="text" x="30" y="30" text="这是labelFunction的测试例子"/>
    <mx:ComboBox id="cbx" labelFunction="cbxDisplayFunction" 
       dataProvider="{cbxDataProvider}"    x="30" y="60"/>
</mx:Application>

测试结果图为:

Flex Hack 01: labelFunction的使用

这个labelFunction方法也可用于DataGrid中,如果有时候需要国际化之类的需求的时候,labelFunction也还是能派上用处的。

Tags:Flex Hack labelFunction

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接