如何使用Vaadin文本更改侦听器

时间:2016-11-12 14:23:53

标签: vaadin vaadin7

美好的一天。我正在一个具有html布局的Vaadin项目中工作。我想在点击时更改图例文字。这是html布局。

<vaadin-panel _id="namePanel" class="layoutContainer">
 <vaadin-vertical-layout>
    <vaadin-label style-name="colored" class="cssStyle"  _id="namePanel">
      <legend>Name</legend> 
    </vaadin-label> 

目前,此名称Label上有一个ClickListener,可在单击后显示fullName name.addContextClickListener(event - &gt; showData());

  private void showData() {
    x++;
    boolean checking = false;
    if (x % 2 != 0) {
        checking = true;
    }
    fullName.setVisible(checking);

我需要在onClick上将文本(标签)“名称”更改为“全名”。

所以我想出了如何导入JavaScript以及如何发出警报。

 Page.getCurrent().getJavaScript().execute("alert('Hello')");

我猜我会按照这条路线更改点击文字?

或者我可以将textListener与HTML内容一起使用吗?

另外,如何让Vaadin点击响应左键单击而不是右键单击?

感谢您提供任何建议。

1 个答案:

答案 0 :(得分:1)

选项1 - 更改对象

一个选项是让Label成为Vaadin Button并对其进行样式设置,使其看起来不像按钮,然后添加点击监听器。

选项2 - LayoutClickListener

另一个选项是定义LayoutClickListener并将Label添加到包含final Label fullName = new Label( "Name" ); VerticalLayout layout = new VerticalLayout(); layout.addComponent( fullName ); layout.addLayoutClickListener( new LayoutClickListener() { @Override public void layoutClick( LayoutClickEvent event ) { // whatever you want to do, the following may or may not be right if ( event.getClickedComponent() == fullName ) ( (Label) event.getClickedComponent() ).setValue( "Full Name" ); } } ); 的布局中。这是一个例子:

user-story

有关详细信息,请查看at this Vaadin forum post