Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将ArrayList添加到GWT列表框_Java_Gwt_Arraylist_Listbox - Fatal编程技术网

Java 如何将ArrayList添加到GWT列表框

Java 如何将ArrayList添加到GWT列表框,java,gwt,arraylist,listbox,Java,Gwt,Arraylist,Listbox,我的arrayList为: final List<User> users = new ArrayList<User>(); 您可以使用以下代码: class CustomListBox extends ListBox { public void addUsersList(List<User> userList) { for (User user : userList) { addItem(user.toStri

我的arrayList为:

final List<User> users = new ArrayList<User>();

您可以使用以下代码:

class CustomListBox extends ListBox {
    public void addUsersList(List<User> userList) {
        for (User user : userList) {
            addItem(user.toString());
    }
}

CustomListBox customListBox = new CustomListBox();
customListBox.addUsersList(getUsersList());
customListBox.setValue(getUsersList().get(1));
类CustomListBox扩展了ListBox{
public void addUsersList(列表用户列表){
for(用户:userList){
addItem(user.toString());
}
}
CustomListBox CustomListBox=新建CustomListBox();
addUsersList(getUsersList());
setValue(getUsersList().get(1));
您还可以使用组件:

ValueListBox<Users> customListBox = new ValueListBox<Users>(new Renderer<Users>() {
    public String render(Users users) {
        String s = "Select a user";
        if(users != null) {
            StringBuilder sb = new StringBuilder();
            sb.append(users.getUsername());
            sb.append("(");
            sb.append(users.getFirstname());
            sb.append(" ");
            sb.append(users.getLastname());
            sb.append(")").toString();

            s = sb.toString();
        }
        return s;
    }

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

customListBox.setValue(getUsersList().get(1));
customListBox.setAcceptableValues(getUsersList());
ValueListBox customListBox=新的ValueListBox(新的渲染器(){
公共字符串呈现(用户){
String s=“选择一个用户”;
如果(用户!=null){
StringBuilder sb=新的StringBuilder();
sb.append(users.getUsername());
某人加上(“”);
sb.append(users.getFirstname());
某人加上(“”);
sb.append(users.getLastname());
sb.追加(“)”.toString();
s=sb.toString();
}
返回s;
}
公共void呈现(用户,可追加可追加)引发IOException{
字符串s=呈现(用户);
可追加。追加;
}
});
setValue(getUsersList().get(1));
setAcceptableValues(getUsersList());

希望这能有所帮助。

请注意,您必须先在ValueListBox中输入一个值,然后分配一个列表。这很奇怪。我认为这是小部件中的一个错误,因为在setAcceptableValues中有一个更新过程,在该过程中,获取当前值(null)时会发生,NPE会上升。
ValueListBox<Users> customListBox = new ValueListBox<Users>(new Renderer<Users>() {
    public String render(Users users) {
        String s = "Select a user";
        if(users != null) {
            StringBuilder sb = new StringBuilder();
            sb.append(users.getUsername());
            sb.append("(");
            sb.append(users.getFirstname());
            sb.append(" ");
            sb.append(users.getLastname());
            sb.append(")").toString();

            s = sb.toString();
        }
        return s;
    }

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

customListBox.setValue(getUsersList().get(1));
customListBox.setAcceptableValues(getUsersList());