原文:Setting image dynamically in ImageHyperLink

 

NetBeans では JavaServer Faces のあらかじめ定義されたコンーポーネントをパレットからヴィジュアルデザイナにドロップしたときにほとんどのプログラムコードが生成されます。同じ事がイメージハイパーリンクコンポーネントをヴィジュアルデザイナのページにドラッグアンドドロップすることで起こります。しかし、ときどき直接コーディングが必要になるときもあります。

他のサポートチャネルでも同じような質問を何度も見かけました。NetBeans サポートブログに投稿することでほかの方の助けになればと思います。 

メインメニューからファイル ー> 新規プロジェクト ー> web アプリケーション -> Visual Web JavaServer Faces を選択してVisual Web プロジェクトについて参照します。プロジェクトを作成する時は、ヴィジュアルデザイナページが表示されます。そしてパレットからイメージハイパーリンクのコンポーネントをヴィジュアルデザイナにドラッグアンドドロップすることでリンクを作成できます。画像にイメージハイパーリンクのコンポーネントを設定するには、以下のスクリーンショットのようにプロパティウィンドウの中のイメージ URL というプロパティを設定します。

 

 

しかし、もしダイナミックに作成したければ、コードを追加する必要があります。コードを追加する際によく出るエラーが「ランタイムエラー:同じ ID のイメージがあります。」このエラーはイメージハイパーリンクのコンポーネントで setId() メソッドを用いなかったときに起こります。一意の ID を確保するようにしてください。

以下は同様なケースの簡単なコードの一部です。グリッドパネルレイアウトを用いました。それから以下の Java コードを追加してください。

 

  public HtmlPanelGrid getGridPanel1() {
ImageHyperlink hyperLink1 = createHyperlink("link1");
ImageHyperlink hyperLink2 = createHyperlink("link2");
gridPanel1.getChildren().add(hyperLink1);
gridPanel1.getChildren().add(hyperLink2);
return gridPanel1;
}

private ImageHyperlink createHyperlink(String Id) {
//Create the hyperlink
ImageHyperlink navigationLink = null;
navigationLink = new ImageHyperlink();
navigationLink.setId(Id);
navigationLink.setImageURL("/resources/help.gif");
return navigationLink;
}

 

最後に、インポートを修正することを忘れないでください。(エディタ上で右クリック ー> インポートを修正) Java ソースファイルに追加したコンポーネントにインポートの文章が追加されるはずです。 

 

 

 

投稿されたコメント:

コメント
コメントは無効になっています。

This blog copyright 2009 by katakai