项目中需要定时刷新一个LIST,且根据内容不同动态显示其状态。原来想用CHECKBOX来实现,但由于鼠标可以对显示正确的CHECKBOX进行修改,所以没有达到状态变更后不能修改的效果。相了很久,后来通过对与LIST的dataProvider进行绑定的ArrayCollection的每个对象的ICON进行动态生成解决了问题。:)
代码如下:
1、在动态监控的MXML显示页面,对状态图标类说明,用于TIMER刷新LIST的dataProvider显示图标。
//2011-03-31
[Bindable]
[Embed(source="images/playNotFinish.jpg")]
public var playNotFinishPicFile:Class;
[Bindable]
[Embed(source="images/playFinish.jpg")]
public var playFinishPicFile:Class;
[Bindable]
[Embed(source="images/playStop.jpg")]
public var playStopPicFile:Class;
[Bindable]
[Embed(source="images/playDel.jpg")]
public var playDelPicFile:Class;
2、LIST设置绑定的ArrayCollection--- infoArrColl
<mx:List id="flatLister" width="100%" height="100%" fontSize="13" alternatingItemColors="[#EEEEEE, white]"
dataProvider="{infoArrColl}" click="ListItemChangeHandler(event);"
doubleClickEnabled="true" doubleClick="ListItemDoubleClickHandler(event);" >
</mx:List>
3、定时器刷新,MXML初始化时载入
autoRefreshTimer=new Timer(1000*sysinfoobjvo.monitorPanelRefreshTimes);
autoRefreshTimer.addEventListener(TimerEvent.TIMER,autoRefreshTimer_timer);
autoRefreshTimer.start();
4、 调用方法直接CALL后台的RemoteObject 的JAVA方法构建infoArrColl,这里不说了。
5、 后台的JAVA方法构建infoArrColl,在这里是oldList
for (int j = 0; j < oldList.size(); j++) {
xml_fltinfo oldObj = (xml_fltinfo) oldList.get(j);
if ((!oldObj.getPoint()) && (oldObj.getFinishTime().equals(""))) {
oldObj.setItemStatus(3);
oldObj.setProcess(100);
// 2011-03-31
oldObj.setIcon(BdsConstant.playFinishPicFile);
oldObj.setIsSelected(true);
oldObj.setFinishTime(CommonFun.getCurTime());
}
}
主要通过增加icon属性,并动态对其赋予不同的图标名称来实现OBJECT2VO映射后的图标显示
public class BdsConstant {
static String playFinishPicFile="playFinishPicFile";
static String playDelPicFile="playDelPicFile";
static String playNotFinishPicFile="playNotFinishPicFile";
static String playStopPicFile="playStopPicFile";
}
分享到:
相关推荐
以上就是如何在VC 6.0 MFC中实现ListControl带有复选框和图标的详细步骤。在实际项目中,可能还需要考虑其他因素,如自定义绘制项,处理更复杂的事件,或者在数据库或数组中同步数据等。通过深入理解CListCtrl类及其...
4. **显示排序状态**:为了指示当前的排序状态,我们可以为列头添加一个箭头图标,表示升序或降序。这通常通过改变列头的`HDITEM`结构的`pszText`成员来实现,添加相应箭头的Unicode字符。或者,可以改变列头的背景...
在某些情况下,我们可能需要根据特定条件改变List Control中某一行的颜色,以突出显示某些信息或者提供视觉反馈。这个过程通常涉及到自定义绘制(custom drawing)。下面将详细解释如何实现这一功能。 首先,我们...
此外,如果你使用的是MFC以外的框架,如Qt或wxWidgets,实现方式会有一定的差异,但基本思想是一致的:利用自定义绘制机制来在ListCtrl的每一行上显示不同的图标。 总的来说,给ListCtrl的不同行添加不同图标是一项...
- **动态改变图标**:根据程序逻辑,可以实时更改Item的ImageIndex,从而实现动态组合图标的效果。 3. **源码实现** - **添加ImageList**:首先创建一个ImageList实例,并添加所需的图标资源。 - **绑定图标**:...
本文将详细讲解如何在MFC中针对特定条件改变List Control中的某一行的背景颜色。 首先,我们需要了解List Control的基本概念。它是MFC对Windows API中的ListView控件的封装,支持多种视图模式,如图标、报告(列表...
本项目专注于在Listcontrol中实现缩略图显示功能,特别是对于.bmp图像。 要实现在Listcontrol中显示缩略图,首先需要了解ListView的自定义视图和图像列表(CImageList)的概念。在默认情况下,Listcontrol不支持...
例如,当用户选择一个项时,可以改变与之关联的图标状态。 3. **Java GUI**: 对于Java桌面应用,可以使用JComboBox控件并自定义其渲染器来实现。你需要创建一个继承自DefaultListCellRenderer的类,重写`...
"字符串改变颜色"的功能可能是指根据数据状态或用户交互,动态地改变ListCtrl中字符串的显示颜色。这可以用来突出显示某些重要的信息,或者通过颜色来区分不同状态的数据,比如错误信息可以用红色显示,成功信息用...
在Windows编程中,`ListCtrl`(列表控件)是非常常用的一种控件,它能够以多种视图形式显示数据,如图标、详细列表等。而在某些场景下,我们可能需要在列表项前添加复选框,并实现这些复选框之间的单选功能。下面...
7. **动态更新**: 如果List Control的数据发生变化,需要确保按钮的状态和位置也相应更新。这可能涉及重新绘制项或调整控件的尺寸。 提供的源码和exe文件可能包含实现这些功能的示例代码,通过阅读和分析这些代码,...
这个事件允许开发者在控件上进行精细的图形绘制,比如添加特殊效果、动态图标或者根据数据项的状态改变显示。在`DrawItem`事件处理程序中,开发者可以访问Graphics对象,利用它提供的方法如DrawImage、DrawString等...
在实际开发中,这种自定义方法不仅可以用于改变indicator图标,还可以应用于其他需要根据状态改变显示的组件,如TabLayout的指示器,或者其他需要动态切换图标的场景。通过这种方式,你可以为你的Android应用增添更...
4. **状态图标**:通过`SetItemState`可以设置子项的状态,例如选中、高亮、禁用等,同时还可以显示自定义的状态图标。 5. **自定义消息处理**:可以重载`OnNotify`或`OnLvnItemchanged`等消息处理函数,来响应用户...
在`tabBar`的`list`属性中,我们可以定义需要展示的tab项,每项由`pagePath`(页面路径)、`iconPath`(未选中时的图标路径)、`selectedIconPath`(选中时的图标路径)和`text`(底部显示的文字)等属性组成。...
要改变ListControl的风格,可以通过GetWindowLong和SetWindowLong函数来操作。例如,可以清除现有的显示方式,然后设置为报告风格(LVS_REPORT)。对于扩展风格,可以使用SetExtendedStyle方法添加如全行选择(LVS_...
在Windows编程中,`ListCtrl` 是一个常用的控件,常用于显示列表数据,它可以在对话框、窗口或工具栏中使用。`ListCtrl` 支持多种视图模式,如报告视图、小图标视图、大图标视图和列表视图。在这个特定的情况下,...
本文将通过具体的示例代码来探讨如何利用Visual Basic(VB)实现动态图标效果。 #### 一、项目准备 在开始编写代码之前,我们需要进行一些准备工作: 1. **添加控件**:确保你的项目中已经包含了`Microsoft ...
如果你的列表控件需要动态改变颜色,可能需要监听LVN_ITEMCHANGED通知,以便在项的状态改变时更新颜色。同时,为了让控件调用OnDrawItem(),你需要在创建列表控件时设置LVS_OWNERDRAWFIXED风格。 4. **性能考虑**...
在Android开发中,State List Drawable(状态列表绘制对象)是一种非常重要的资源类型,它允许我们根据组件的状态(如被按下、被聚焦、被选中等)来改变其显示的图像。这个实例“Android State List Drawable状态...