如何在vaadin中点击链接设置值

我是vaadin的新手。 我有一个像链接

链接链接=新链接(“”,新的ExternalResource(redirectURL));

我的要求是,我必须在用户点击链接时设置值。 用户单击链接时是否可以添加侦听器。 或者,如果单击链接,是否有其他设置值的方法。

要捕获链接或标签上的onClick,我总是创建一个HorizontalLayout并将组件放在其中:

 HorizontalLayout hor = new HorizontalLayout(); final Link link = new Link("Click on Me!", new ExternalResource("http://www.google.com")); hor.addComponent(link); hor.addLayoutClickListener(new LayoutClickListener() { @Override public void layoutClick(LayoutClickEvent event) { // capture the click here and do whatever you'd like to do, eg // if ( event.getClickedComponent() != null ) { // if(event.getClickedComponent().equals(link)) {} } }); 

我将您的问题解释为更改链接的标题。 据我所知,它不可能与Link组件有关。 看一下activelink插件: http ://vaadin.com/addon/activelink。

此插件的行为类似于Link,允许您向其添加LinkActivatedListener 。 代码应如下所示:

 final ActiveLink link = new ActiveLink("", new ExternalResource(redirectURL)); link.addListener(new LinkActivatedListener() { @Override public void linkActivated(LinkActivatedEvent event) { link.setCaption("newCaption"); } }); 

您可以使用新的BrowserWindowOpener类:

来自API:

单击扩展组件时打开浏览器弹出窗口的组件扩展。

例:

 BrowserWindowOpener browserWindowOpener = new BrowserWindowOpener(new ExternalResource("http://google.com")); /* * Apparently, the BrowserWindowOpener method setWindowName uses the HTML5 target * attribute (no longer deprecated as it was in HTML4). * So you can use either a frame name, or one of four special attribute values: * _blank, _self, _parent, _top * * browserWindowOpener.setWindowName(); */ final Button btn = new Button("Click me"); browserWindowOpener.extend(btn); btn.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { btn.setCaption("clicked"); } }); 

更多信息在这里 。

我在Vaadin上工作但是我查看了这份文件。 我发现Link类在内部扩展了AbstractComponent类,它有许多你可以覆盖的函数。 就像它有addListener函数一样,你需要将Component监听器作为参数传递,并且可以检测click事件并做任何你想做的事情。

供参考检查

这也是

希望这会有所帮助:)