1

私はvaadinが初めてです。私は1つのリンクを持っています

リンク link = new Link("", new ExternalResource(redirectURL));

私の要件は、ユーザーがリンクをクリックしたときに値を設定する必要があることです。ユーザーがリンクをクリックしたときにリスナーを追加できますか? または、リンクがクリックされた場合に値を設定する別の方法があります。

4

4 に答える 4

3

あなたの質問は、リンクのキャプションを変更するものだと解釈しました。私の知る限り、それはおそらく Link コンポーネントではありません。Activelink アドオンを見てみましょう: http://vaadin.com/addon/activelink .

このアドオンはリンクのように動作し、追加できますLinkActivatedListener。コードは次のようになります。

final ActiveLink link = new ActiveLink("", new ExternalResource(redirectURL));
link.addListener(new LinkActivatedListener() {

    @Override
    public void linkActivated(LinkActivatedEvent event) {
        link.setCaption("newCaption");
    }

});
于 2014-03-27T08:27:51.030 に答える
1

新しい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");
    }
});

詳細はこちら

于 2014-03-27T14:01:47.870 に答える
0

私はまだ Vaadin に取り組んでいませんが、ドキュメントを調べました。クラスは、オーバーライドできる多くの機能を持つクラスをLink内部的に拡張していることがわかりました。リスナーをパラメーターとして渡す必要がある機能がありAbstractComponent、クリックイベントを検出して、やりたいことを何でもできるようにします。addListenerComponent

参考までにこちらをチェック

そしてこれも

これが役立つことを願っています:)

于 2014-03-27T06:54:22.940 に答える