2013-05-20 63 views
0

当我执行下面的代码时,显示图像,但名称不显示在它下面。 Window.alert确实显示正确的名称。因此,误差必须在该行:我已经寻找类似的代码在网上FlexTable中显示标签的问题

flexTable.setWidget(row + 1, col, new Label(youthMember.getSurname() + ", " + youthMember.getFirstname())); 

但我不能找到一个解决方案。

我正在使用Eclipse Juno和GWT。

非常感谢您的帮助。

问候,

格林

public void renderYouthMemberTable(List<YouthMember> youthMemberList) { 
    if (youthMemberList != null) { 
     int row = 0; 
     int col = 0; 
     flexTable.clear(); 
     for (final YouthMember youthMember : youthMemberList) { 
      String imageDataString = youthMember.getPhotograph(); 

      //Display each image with the name under it. 
      Image image = new Image(imageDataString); 

      flexTable.setWidget(row, col, image); 
      flexTable.setWidget(row + 1, col, new Label(youthMember.getSurname() + ", " + youthMember.getFirstname())); 
      Window.alert("Name " + youthMember.getSurname() + ", " + youthMember.getFirstname()); 

      //Add click handler 
      image.addClickHandler(new ClickHandler(){ 

       @Override 
       public void onClick(ClickEvent event){ 
        // Do something - Go to next view passing the ID 
        //returnID = youthMember.getId(); 
        //Window.alert("returnID = " + returnID); 
        //navHandler.go(AwardOverview); 
        Window.alert("Picture clicked"); 
       } 
      }); 

      //Go to next column and if the end of the columns 
      //drop two rows and go to the first column 
      col = col + 1; 
      if (col > 7) { 
       row = row + 2; 
       col = 0; 
      } 
     } 
    } 

} 

答案是名字被显示。但是,它不可见。所以我改变了代码(改变是图像显示之后 - 这总是工作):

flexTable.setWidget(row, col, image); 
      Label lblYMname = new Label (youthMember.getSurname() + ", " + youthMember.getFirstname()); 
      lblYMname.setStyleName("gwt-Label-Login"); 
      lblYMname.setWidth("151px"); 
      flexTable.setWidget(row + 1, col, lblYMname); 

回答

0

答案是名字被显示。但是,它不可见。所以我改变了代码(改变是在图像显示之后 - 总能正常工作):

flexTable.setWidget(row, col, image); 
     Label lblYMname = new Label (youthMember.getSurname() + ", " + youthMember.getFirstname()); 
     lblYMname.setStyleName("gwt-Label-Login"); 
     lblYMname.setWidth("151px"); 
     flexTable.setWidget(row + 1, col, lblYMname);