如何将表添加到布局中

时间:2016-07-13 10:47:16

标签: java vaadin vaadin7

我在自己的类FileUploaderResultsTable.java中创建了一个表,如下所示:

public class FileUploaderResultsTable extends Table
{

    public FileUploaderResultsTable()
    {

        Table resultTable = new Table("Rendering table");
        resultTable.addStyleName("testTable2");
        resultTable.addContainerProperty("Name", String.class, null);
        resultTable.addContainerProperty("Mag",  Float.class, null);

        resultTable.addItem(new Object[]{"Canopus",        -0.72f}, 2);
        resultTable.addItem(new Object[]{"Arcturus",       -0.04f}, 3);
        resultTable.addItem(new Object[]{"Alpha Centauri", -0.01f}, 4);

        resultTable.setPageLength(resultTable.size());
        System.out.println("table created");
    }

我有另一个类FileUploaderComponent.java,其中包含一个添加到Window对象的垂直布局。我试图显示上面的表,所以在FileUploaderComponent.java中我创建了一个FileUploaderResultsTable对象,如下所示:

public class FileUploaderComponent extends AbstractJavaScriptComponent
{

    ...
    private VerticalLayout myLayout = new VerticalLayout();
    private FileUploaderResultsTable resultsTable = new FileUploaderResultsTable();
    ...
    public void addTable(){
    myLayout.addComponent(resultsTable);
    }

}
然后将

myLayout添加到另一个函数中的新窗口对象中。该机制之所以有效,是因为我添加了其他元素,如文本字段等,但由于某些原因,表格没有正确添加。 在DOM中我可以看到有一个表但它是空的并且它没有指定类名。 说实话,通常如果我想将另一个类的组件添加到布局中,我通常会将组件称为resultsTable.resultTable,因此object.component语法而不仅仅是resultsTable,而是编译器不是那样的。那么,是否有另一种方法可以将表格作为组件添加到布局中,还是我只是在做一些愚蠢的事情?

1 个答案:

答案 0 :(得分:1)

您正在以错误的方式使用扩展类。试试这个:

<script>
    function myFunction() {
        document.getElementById("monBttn").disabled = true; 
        document.getElementById("monBttn").innerHTML = "Traitement en cours...";
        document.getElementById("myForm").submit();
    }
</script>