Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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 Vaadin-使添加的项目可选择(并可编辑)_Java_Vaadin - Fatal编程技术网

Java Vaadin-使添加的项目可选择(并可编辑)

Java Vaadin-使添加的项目可选择(并可编辑),java,vaadin,Java,Vaadin,我想通过单击add按钮,使新添加的表项(又名行)在添加后立即可选择。我的主要目的是使其既可选择又可编辑(但仅限于该行,现在是整个表) 以下是表格代码: public Table createTable(BeanContainer<Long, PS_SECTION> beans) { table.setImmediate(true); table.setContainerDataSource(bean

我想通过单击add按钮,使新添加的表项(又名行)在添加后立即可选择。我的主要目的是使其既可选择又可编辑(但仅限于该行,现在是整个表)

以下是表格代码:

            public Table createTable(BeanContainer<Long, PS_SECTION> beans) {       
            table.setImmediate(true);
            table.setContainerDataSource(beans);
            table.setColumnHeader("PS_SECTION", "ID");
            table.setColumnHeader("NAME", "SECTION");
            table.setColumnHeader("VORDER","ORDER");

            table.addGeneratedColumn("ACTIVE", new Table.ColumnGenerator() {

                @Override
                public Object generateCell(final Table source, final Object itemId,
                        Object columnId) {              

            table.setTableFieldFactory(new DefaultFieldFactory() {

                @Override
                public Field<?> createField(Container container, final Object itemId, Object propertyId, Component uiContext) {

                        if (!itemId.equals(table.getValue())) {
                               return null;
                        }
                               Field<?> field = super.createField(container, itemId, propertyId, uiContext);
                               field.setBuffered(true);

                    return field;
                }
            });


            table.addValueChangeListener(new Property.ValueChangeListener() {           
                @Override
                public void valueChange(Property.ValueChangeEvent event) {              
                        if (table.getValue() != null) {                     
                            editButton.setVisible(true);
                        } 
                        else {
                            editButton.setVisible(false);
                        }           
                }
            });

            table.addItemClickListener(new ItemClickEvent.ItemClickListener() {
                  @Override
                  public void itemClick(ItemClickEvent itemClickEvent) {
                        if (itemClickEvent.isDoubleClick() && !table.isEditable()) {
                          table.setValue(itemClickEvent.getItemId());
                          configureEditable(true);  
                        // THE FUNCTION THAT MAKES THE SELECTED ROW EDITABLE
                          editButton.setVisible(false);
                          addButton.setVisible(false);
                        }               
                  }
                });


      // ....SOME MORE TABLE ATTRIBUTES HERE....

            return table;
        }

objectitemid=createNewBean()//创建一个新bean,该bean返回一个可设置为新项id的唯一id

table.addItem(itemId); //add this newly created item to the table
//set the column values here for this particular item
table.getItem(itemId).getProperty("column_name").setValue("column_value");
//similarly set values of other columns for this particular item

table.setValue(itemId); //this selects the just added row

我希望它能有所帮助。

事实上,它确实在新项目中设置了一个唯一的id,但它不能使它成为可选择的。
table.addItem(itemId); //add this newly created item to the table
//set the column values here for this particular item
table.getItem(itemId).getProperty("column_name").setValue("column_value");
//similarly set values of other columns for this particular item

table.setValue(itemId); //this selects the just added row