2011-07-11 69 views
4

我有一個列表框,我想添加一些項目。 只有將項目添加爲字符串的方法,但是 我想使用字符串和對對象的引用將項目添加到列表框。 因此,如果在列表框中選擇了一個項目,我也會得到對象引用。 否則,我一直在尋找正確的對象。Gwt列表框項目引用對象

因此有什麼選擇嗎?

回答

2

您可以將該對象存儲在由該項目的值索引的Map中,或者存儲在列表框中添加項目的索引處的數組或列表中。

+0

目前我有對象的矢量。 現在我想添加一個ListBox。 – ph09

+0

如果將矢量與列表框保持平行,當在列表框中選擇索引i處的項目時,可能會在矢量中獲取索引i處的對象。 –

+0

sry我貼得太快;) 此刻我有一個矢量的對象。 現在我想將它們添加到列表框中。 當在ListBox中選擇了某些東西時,我想獲取Object而不是String。 類似於:mylistbox.add(String name,MyObject myObject)。或者你是這樣意思的: int i = myListbox.getSelectedItem(); Myobject object = MyObjectVector.elementAt(i) – ph09

2

這是一個老問題,但由於最優雅的回答是還沒有在這裏:

// Applicable for an object of specified type 'User' 
ValueListBox<User> lbUser = new ValueListBox<User>(new Renderer<User>() { 

    public String render(User user) { 
    String s = ""; 
    if (user != null) { 
     // Specify the format for the Strings to display per list item here. In this example, it is 
     // 'username (firstname lastname)' 
     // For example: MTielemans (Mark Tielemans) 
     s = user.getUsername() + "("+user.getFirstname()+" " + user.getLastname()+")"; 
    } else { 
     s = "Select a user"; 
    } 
    return s; 
    } 

    public void render(User user, Appendable appendable) throws IOException { 
     String s = render(user); 
     appendable.append(s); 
    } 
});