Because list items are essentially rendered as a rubber stamp, they can not be treated as typical LWUIT components. Things such as binding event listeners to the components in the list will not work since the list reuses the same component to draw all the entries.
Features such as tickering an individual cell are often requested and the solution is not trivial because what we need to do is essentially "ticker the List", not the renderer.
The sample below tickers a renderer by registering itself as an animation in the parent form and calling the list's repaint method to ticker. Notice that it has a separate entry for the selected list item, otherwise the entire content of the list would constantly ticker.
class TickerRenderer extends DefaultListCellRenderer { private DefaultListCellRenderer selectedRenderer = new DefaultListCellRenderer(false); private List parentList; public TickerRenderer() { super(false); } public boolean animate() { if(parentList != null && parentList.getComponentForm() != null) { if(selectedRenderer.isTickerRunning()) { if(selectedRenderer.animate()) { parentList.repaint(); } } } return super.animate() } public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { if(isSelected) { selectedRenderer.getListCellRendererComponent(list, value, index, isSelected); // sometimes the list asks for a dummy selected value for size // calculations and this might break the tickering state if(index == list.getSelectedIndex()) { if(selectedRenderer.shouldTickerStart()) { if(!selectedRenderer.isTickerRunning()) { parentList = list; list.getComponentForm().registerAnimated(this); selectedRenderer.startTicker(UIManager.getInstance(). getLookAndFeel().getTickerSpeed(), true); } } else { if(selectedRenderer.isTickerRunning()) { selectedRenderer.stopTicker(); } } } return selectedRenderer; } else { return super.getListCellRendererComponent(list,value,index,isSelected); } } }