2012-01-11 64 views

回答

1

您可以爲這兩行設置兩個不同的UIID。設置此UIID,您可以選擇性地修改行的顏色。

編輯

確定這將更加困難。

您需要編寫一個Render並將其設置爲List,List.setRender(Render r)。 'Render'班將從ListCellRender延伸。在此課程中,您可以將UIID設置爲Render,設置其選定或未選擇樣式。

看到這個例子。 @Shai Almog可以爲你的問題提供更多信息。

http://www.lwuit.com/2008/07/lwuit-list-renderer-by-chen-fishbein.html

+0

問題是,只有當選擇行時,顏色纔會生效滾動列表元素。那麼如何影響每一行的顏色呢? – pheromix 2012-01-11 10:34:43

+0

@pheromix爲了解決這個問題,我特別留下了對你的問題的評論。你檢查過了嗎?源代碼[link](http://java.net/projects/lwuit/sources/svn/content/LWUIT_1_5/Apps/LWUITDemo/src/com/sun/lwuit/uidemo/RenderingDemo.java?rev=1644) – Vimal 2012-01-11 17:09:33

+2

Keep記住列表渲染器返回一個焦點組件,這是您在使用按鍵移動選擇時看到的動畫元素。它有自己的風格。在GUI構建器中創建渲染器時,您可以選擇「pinstipe」渲染器作爲選項,該選項將自動使用以奇數/偶數(讀取渲染器條目旁邊的文檔)結尾的樣式,該格式允許細條紋效果。我想我在某個視頻中演示了它,但是我再也找不到它了。無論如何需要重做視頻。 – 2012-01-12 06:45:07

0

你需要的是通用列單元格渲染,你可能會在代碼中創建的樣式,或設置爲從資源編輯器的UIID。

List list = new List(createGenericListCellRendererModelData()); 
list.setRenderer(new GenericListCellRenderer(createGenericRendererContainer(), createGenericRendererContainer())); 


private Container createGenericRendererContainer() { 
    Container c = new Container(new BorderLayout()); 
    c.setUIID("ListRenderer"); 
    Label name = new Label(); 
    name.setFocusable(true); 
    name.setName("Name"); 
    c.addComponent(BorderLayout.CENTER, name); 
    Label surname = new Label(); 
    surname.setFocusable(true); 
    surname.setName("Surname"); 
    c.addComponent(BorderLayout.SOUTH, surname); 
    CheckBox selected = new CheckBox(); 
    selected.setName("Selected"); 
    selected.setFocusable(true); 
    c.addComponent(BorderLayout.WEST, selected); 
    return c; 
} 

private Hashtable[] createGenericListCellRendererModelData() { 
    Hashtable[] data = new Hashtable[5]; 
    data[0] = new Hashtable(); 
    data[0].put("Name", "Shai"); 
    data[0].put("Surname", "Almog"); 
    data[0].put("Selected", Boolean.TRUE); 
    data[1] = new Hashtable(); 
    data[1].put("Name", "Chen"); 
    data[1].put("Surname", "Fishbein"); 
    data[1].put("Selected", Boolean.TRUE); 
    data[2] = new Hashtable(); 
    data[2].put("Name", "Ofir"); 
    data[2].put("Surname", "Leitner"); 
    data[3] = new Hashtable(); 
    data[3].put("Name", "Yaniv"); 
    data[3].put("Surname", "Vakarat"); 
    data[4] = new Hashtable(); 
    data[4].put("Name", "Meirav"); 
    data[4].put("Surname", "Nachmanovitch"); 
    return data; 
} 

全部細節在這裏:http://lwuit.blogspot.com/2011/03/list-rendering-easy-way-generic-list.html(代碼從這個鏈接得到)。