2011-07-11 48 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); 
    } 
});