VaadIn Visual Designer - 面板问题

VaadIn Visual Designer - panel issue

我使用 Vaadin Labs 的可视化设计器创建了一个 VaadIn 设计

它是一个基本的登录面板

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8" name="design-properties" content="{&quot;RULERS_VISIBLE&quot;:true,&quot;GUIDELINES_VISIBLE&quot;:false,&quot;SNAP_TO_OBJECTS&quot;:true,&quot;SNAP_TO_GRID&quot;:true,&quot;SNAPPING_DISTANCE&quot;:10.0,&quot;PAPER_WIDTH&quot;:1440,&quot;PAPER_HEIGHT&quot;:900,&quot;JAVA_SOURCES_ROOT&quot;:&quot;src&quot;,&quot;THEME&quot;:&quot;sws_7_2&quot;}">
 </head> 
 <body> 
  <v-panel caption="Login" width="40%" height="40%" _id="login"> 
   <v-vertical-layout spacing="true" size-full="true" margin=""> 
    <v-horizontal-layout spacing="true" width-full="true"> 
     <v-label size-auto="true" plain-text="" :middle="" :right="" _id="lblLoginName">
       Login naam : 
     </v-label> 
     <v-text-field :middle="" _id="txtLoginName"></v-text-field> 
    </v-horizontal-layout> 
    <v-horizontal-layout spacing="true" width-full="true"> 
     <v-label size-auto="true" plain-text="" :middle="" :right="" _id="lblPassword">
       Paswoord : 
     </v-label> 
     <v-text-field :middle="" _id="txtPassword"></v-text-field> 
    </v-horizontal-layout> 
    <v-horizontal-layout spacing="true" width-full="true"> 
     <v-button plain-text="" :middle="" :right="" _id="btnLogin">
       Login 
     </v-button> 
     <v-button plain-text="" :middle="" _id="btnCancel">
       Annuleren 
     </v-button> 
    </v-horizontal-layout> 
    <v-horizontal-layout spacing="true" width-full="true"> 
     <v-button plain-text="" :middle="" :center="" _id="btnLoginPasswordForgotten">
       Login / paswoord vergeten? 
     </v-button> 
    </v-horizontal-layout> 
    <v-horizontal-layout width-full="true"> 
     <v-label width="6px" plain-text="" :middle="" :center="" _id="lblError"></v-label> 
    </v-horizontal-layout> 
   </v-vertical-layout> 
  </v-panel>  
 </body>
</html>

当我调用登录屏幕(下面的代码)时,我看到了它,但我无法对其执行任何操作。 ClickListner 不工作,我什至无法更改标签值或其他内容...

public class Login extends LoginDesign implements Button.ClickListener {
private static final long serialVersionUID = 1L;
private UI mainUI;
private ClickListener listner = this;

public Panel createLoginPanel(UI mainUI) {
    this.mainUI = mainUI;
    LoginDesign login = new LoginDesign();
    btnLogin.addClickListener(listner);
    lblError.setValue("Problem");
    System.out.println(lblError.getValue());
    return login;
}....

我在控制台中看到 lblError 的更改值,但在屏幕上看不到...?

通常您会创建按钮并添加标题和侦听器。这里我需要单独添加监听器... ?!

我做错了......任何建议!。谢谢!

解决了。

我获取了生成文件的实例,但您需要使用扩展 class ..

public class Login extends LoginDesign implements Button.ClickListener {
private static final long serialVersionUID = 1L;

private UI mainUI;

private ClickListener listner = this;

public Panel createLoginPanel(UI mainUI) {
    this.mainUI = mainUI;
    Login login = new Login();
    btnLogin.addClickListener(listner);
    lblError.setValue("Problem");
    System.out.println(lblError.getValue());
    return login;
}....

解决了