ComboBox与itemRenderer(引用半杯咖啡 Flex文章)

097634e9169c6777120550ad61afb6bc-1.jpg 立即下载

在自定义一个itemRenderer来显示下拉框中的数据时,遇到一个问题。
定义的itemRenderer是个用来显示颜色块的和相应文字说明的。在下拉框的列表中显示很正常,有颜色也有相应的文字说明,如下图:


但是在选中某条数据,下拉框收起来后,在ComboBox的TextInput里只显示了当前的标签,并没有显示对应的颜色。



因为下拉框默认显示选中项是用的TextInput组件,因此并不能像列表里的itemRenderer一样能显示前面的颜色块,不过我们可以继承一个 ComboBox,然后重载createChildren()和updateDisplayList()方法,去掉默认的TextInput,改用实例化一个itemRenderer来显示选中的数据,这样就能保证下拉框里和已经选中的以相同的方式显示。

下面是一个从ComboBox继承的组件ComboBoxEx(实现方式参考了国外某网站上的代码)

package bss.flex.components
{
   import mx.binding.utils.BindingUtils;
   import mx.controls.ComboBox;
   import mx.core.UIComponent;

   public class ComboBoxEx extends ComboBox
   {
       public function ComboBoxEx()
       {
           super();
       }
       
        protected var textInputReplacement:UIComponent;

        override protected function createChildren():void {
            super.createChildren();

            if ( !textInputReplacement ) {
                if ( itemRenderer != null ) {
                    //删除缺少的TextInput组件
                    removeChild(textInput);

                    //用itemRenderer创建一个实例并添加
                    textInputReplacement = itemRenderer.newInstance();
                    //绑定属性
                    BindingUtils.bindProperty(textInputReplacement, "data", this, "selectedItem", true);
                    addChild(textInputReplacement);
                }
            }
        }

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
            super.updateDisplayList(unscaledWidth, unscaledHeight);

            if ( textInputReplacement ) {
                textInputReplacement.width = unscaledWidth;
                textInputReplacement.height = unscaledHeight;
            }
        }
       
   }
}

定义一个用来显示颜色说明的itemRenderer-ColorRenderer.mxml,很简单一个HBox里放个Canvas和Label,Canvas用来显示颜色,Label用来显示标签

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
   horizontalScrollPolicy="off" verticalScrollPolicy="off"
   verticalAlign="middle" paddingLeft="5"
   width="100%" height="25">
   <mx:Canvas width="16" height="16" 
       borderStyle="solid" cornerRadius="2"
       backgroundColor="{data.color}"/>
   <mx:Label text="{data.label}"/>
</mx:HBox>

准备测试数据,就直接在下拉框的ComboBox的dataProvider里写死:
   <?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

xmlns:components="components.*">

 

    <components:ComboBoxEx width="160"

       itemRenderer="itemRenderer.ColorRenderer">

       <components:dataProvider>

           <mx:Object color="0x00EA00" label="新建"/>

           <mx:Object color="0xFF9D4C" label="已退单"/>

           <mx:Object color="0xFF80FF" label="未通过审核"/>

           <mx:Object color="0xFFFF80" label="请求撤销"/>

           <mx:Object color="0x808080" label="作废"/>

       </components:dataProvider>       

   </components:ComboBoxEx>

</mx:Application>


下面这个是最终的效果图,左边的是普通的ComboBox,右边是ComboBoxEx:


Halcon深度学习2 -- 标注工具Deep Learning Tool下载安装 Deep Learning Tool为Halcon开发公司MVTec官方提供的一款标注工具: 标记培训数据是任何深度学习应用程序的关键的第一步。 当涉及到应用程序的性能,准确性和健壮性时,此标记数据的质量起着重要作用。 借助MVTec深度学习工具,我们正在为HALCON用户创建全面流畅的深度学习体验。 通过开发我们自己的解决方案,我们确保可以将其输出无缝集成到HALCON中。 该应用程序还使我们能够吸收在开发HALCON深度学习算法时获得的丰富经验和专业知识,而该算法自然也涉及很多标签! Deep. 阅读详情

相关推荐

告别ORB-SLAM2?手把手教你用OpenVSLAM在Ubuntu 20.04上跑通第一个SLAM Demo(含依赖库避坑指南)

本文详细介绍了如何在Ubuntu 20.04系统上从ORB-SLAM2迁移到OpenVSLAM,包括环境配置、依赖库安装、编译调整及性能优化。OpenVSLAM凭借其模块化设计和多相机支持,在SLAM领域展现出显著优势,适合机器人导航和AR应用开发。文章还提供了实用的避坑指南和进阶技巧,帮助开发者高效完成迁移。

weixin_42524499的博客 255

extjs render

Extjs的renderer关健字可以通过一个方法改变当前绑定的数据显示内容 //新闻状态方法 function getStatusText(value) { var result = '禁用'; switch(value){ case 0: r...

回首如梦 312

蚁群算法(Ant Colony Optimization,ACO)讲解+代码实现

通常情况下,较优的解对应的路径上的信息素会被加强,而较差解对应的信息素则会减少或蒸发。的化学物质,这种物质会在蚂蚁走过的路径上留下痕迹,后续的蚂蚁会根据这些信息素的浓度来选择路径,从而形成一条从蚁巢到食物源的。在求解TSP蚁群算法中,每只蚂蚁相互独立,用于构造不同的路线,蚂蚁之间通过信息素进行交流,合作求解。的过程,该路段经过的蚂蚁越多,信息素留下的就越多,浓度越高,更多的蚂蚁都会选择这个路段。需要注意的是,蚁群算法是一种。(6)计算每只蚂蚁的总距离:遍历每只蚂蚁的路线,累加经过的城市之间的距离。

m0_73804764的博客 1万+

itemRenderer在DataGrid中应用,ComBobox过滤内容

[code="xml"] 300) // { // return false; // } // return true; // } ]]> ...

~纹之心 167

结构化数据特征构建神器openfe的实战代码

最近订阅专栏的几位同学一起参加了AI比赛,该比赛的数据形式是结构化的。随着特征和模型的不断迭代优化,达到了一个难以跨越的瓶颈。希望我能够给出一些有效的方法,帮助他们提高成绩。在个人的调研和体验后,向他们推荐了结构化数据特征构建神器openfe,最终也帮助他们提升了十来名的成绩,个人也感到十分的欣慰。特意写此博客,希望能够帮助更多的同学。 文章目录 1. 安装 2. 实战例子一 3. 实战例子二

herosunly的博客 3万+

华为OD机试真题2026双机位C卷 Java&Go 实现【用户入网定期复评】

用户开立支付账户,在开户完成后立即对用户进行一次风险模型评级,输出一个评分风险,评分范围1-100,等区间的分为5个等级,1-19为等级1,20-39为等级2,40-59为等级3,60-79为等级4,80-100为等级5,系统每天会任务对全量入网用户进行计算复评时间,输出评分给出新的风险等级。复评规则如下:

MISAYAONE的博客 149

Extjs的Ext.form.ComboBox

Extjs的ComoBox类似于HTML中的select表单对象,其中select的option是由Store对象进行管理的。在使用Combobox的时候碰到各式各样的问题或要求,以下介绍一些典型的使用方式。 Form中提交ValueField Store中的每条记录(record)包含两个(或两个以上)的属性,一个用于展示(displayField),一个是实际值(valueField),在

John Gao的专栏 1637

项目管理知识体系(PMBOK)中的质量规划详解

你是否遇到过这些场景?软件上线后用户投诉“功能漏洞多”,团队连夜返工;装修完的房子墙面开裂,施工方和业主互相推诿;新研发的手机电池续航不达标,被迫延迟发布。这些问题的根源,往往是项目启动时没有做好质量规划。本文聚焦PMBOK中“质量规划”(Plan Quality Management)过程,覆盖其核心概念、操作步骤、工具技术与实战应用,适用于IT、建筑、制造等各类项目场景。

项目管理的博客 1118

java swing combobox_Java Swing - 如何创建自定义JComboBox Renderer

import java.awt.BorderLayout;import java.awt.Component;import java.util.Vector;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JComboBox;import javax.swing.JFrame;import javax....

weixin_42438750的博客 545

KUKA机器人在自动运行时,动作不流畅,每个点位都有停顿的解决办法

KUKA机器人在自动运行时,动作不流畅,每个点位都有停顿的解决办法

Robot_PLC_HMI_Automation 4579

一文速学数模-K-means聚类算法实战:信用卡用户画像聚类分析

该项目算是非常经典的金融业务用户画像的基础分析了,主要根据用户信用卡使用行为数据进行分析,根据收集到的不同字段信息,对每个用户划分类别。这里需要说明一下的是,聚类模型只是将具有相似行为的大部分用户聚集到一个类别里面,这点并不会考虑到每个字段的含义,也就是分成的类别并不是用户价值等级,此类别仅仅是这个类别大体相同的信用卡用户行为对象,并不能给每个用户价值打上标签,那是评价模型做的事,这里要注意不要搞混淆了,用户价值评价是评价模型决定的,而画像是聚类模型分析的。

master_hunter的博客 1万+

Laya学习笔记-13ComboBox

一、什么是ComboBox? laya.ui.ComboBox组件包含一个下拉列表,用户可以从该列表中选择单个值 二、属性 Property button:Button [read-only] 获取对 ComboBox 组件所包含的 Button 组件的引用。 dataSource: * [override] 数据赋值,通过对UI赋值来控制UI显示逻辑。 简单赋值会更改组件的默认属性,使用大括号可以指定组件的任意属性进行赋值。 height...

a451319296的博客 1416

YOLOv11改进策略【模型轻量化】| 使用 MoblieOne 模块,引入结构重参数化,提高模型检测效率

本文记录的是基于MobileOne的YOLOv11骨干网络改进方法研究。MobileOne的基础模块通过重参数化,。在将其替换YOLOv11的骨干网络后,实现模型轻量化。

Limiiiing的博客 1425

有的时候comboBox render的时候不好使,你改变了值但是显示还是上一次的值(再次双击才看到改变后的值)...

renderGridValueObject:function(value,record,id,name){ if(record){ if(this.getValue()){ if(this.getValue()==this.getRawValue(...

weixin_30867015的博客 199

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ItemRender---详细讲解理论篇

Flex中提供了大量用于数据呈现的组件,这其中,以List系列组件最为常见,使用也最频繁,比如ComBoBox、List、Tree、TileList、DataGrid等等。这些组件有一个共同的特性,那就是支持自定义itemRenderer,这个功能非常强大,能够帮助我们实现很多实用的功能,本文将介绍itemRenderer的相关知识和具体应用。 什么是itemRenderer?

liruizhuang的专栏 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

理解 Flex itemRenderer - 第 4 部分: 状态和过渡

itemRenderer 最擅长与应用程序的用户通信。有时通信很简单, 只是显示一个名称;有时会使用更精致的颜色;有时具有交互性。 itemEditor 是真正的交互控制, 但它们不是本文的重点。在这些示例中, 我将向您展示根据数据本身或用户操作更改可视外观的 itemRenderer。 状态 Flex &lt;state&gt; 是更改 itemRenderer 外观的一个理想方法...

hereson 209

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Flex代码实现汇总:List中的itemRender用法

List中的itemRender用法    xmlns:home="dbt.tangshan.view.home.*"    creationComplete="newsComp()" borderStyle="none"     width="250" height="75"

Elaine的专栏 7395

JComboBox 组合框条目渲染(JComboBox添加对象选项)

  如何在JComboBox中添加对象,如果直接将对象加入进去,则只会看到该对象的toString()方法输出的内容。如:JPanel panel = new JPanel(); panel.add(new JLable("选项")); JComboBox comboBox = new JComboBox(new JPanel(){panel}); 则会在组合条目中会显示为如下图所示:要如何才能将对象加入到JComboBox中呢?先来看一个eclipse中的对字体设置颜色的选择组合选项示意

wqjsir的专栏 8263

当ItemRender用ComboBox的时选项的重置问题

      最近同事有问到我一个问题:他用ComboBox作为ItemRender修改了DataGrid其中一列的显示。一开始还是没问题的,但随后问题就来了,他新增一条数据,结果之前所有行中ComboBox所选的项都重置了(都选择了ComboBox数据源的第一项)。当时因为忙,我只给出了解决方案,并没有深究其中的原因,今天稍微有点空闲时间,于是把问题具体深究了下。     他的代码是这么写的:

natian306的专栏 1967

使用ItemRenderer为DropDownList定义下拉选项

  首先新建一个ItemRenderer组件 flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="100" height="62"> width="100%"/> 然后再DropDownList的itemRenderer属性中指向这个组件 flex/spark" xmlns:mx="libr

wangangie22 188

LayaAir UI 组件 # Clip 切片、ComboBox 下拉框

  目录 Clip 切片 默认Clip 资源 自定义Clip 资源 ComboBox 编码示例 Clip 切片 1、Laya.ui.Clip 组件可用于显示位图切片动画,Clip 可以将一张图片,按横向分隔数量 clipX、竖向分隔数量 clipY,或横向分割每个切片的宽度 clipWidth、竖向分割每个切片的高度 clipHeight,从左向右,从上到下,分割组合为一个切片动画...

蚩尤后裔-汪茂雄 2755

C#操作ComboBox控件

ComboBox控件是一个很容易使用出错的控件,在此将常用的操作写下来,以备后用,也希望可以帮助到有需要的人。 1、让用户只能选择项。 很简单,设置ComboBox的属性DropDownStyle为DropDownList即可。 2、往ComboBox中添加新项。 private void Form1_Load(object sender, EventArgs e) { this.cmbTest.Items.Add("A");

ba_wang_mao的专栏 8358

Swing框架之Renderer

Swing组件根据其所操作的数据类型分为两种,一种是标量数据类型的组件,一类是复合数据类型的组件。标量数据类型的组件操作的是基本类型的数据,如字符串、布尔、数字等,此类型组件包括JTextField、JCheckBox、JLabel、JButton等。复合数据类型的组件操作的是诸如向量、矩形和非线形等类型的数据。向量数据类型的组件有JComboBox、JList,矩形数据类型的组件有JTable,

expleeve 4430
上一篇: 点击窗口之外的区域将弹出窗口关闭
下一篇: 几个Flex单元测试工具【转】
ld_flex
博客等级 码龄16年 26粉丝 110原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值