質問

ツリーノードがあります。ツリーが表示されているときに、ノード名の横に画像を表示したいと思います。どうすればいいですか?

役に立ちましたか?

解決

  1. 画像からImageConを作成します

    ImageIconアイコン= ....; (これを行う方法はいくつかあります)

  2. DefaultTreeCellRendererのインスタンスを作成します

    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

  3. レンダラーのリーフアイコンフィールドを設定します

    renderer.setleaficon(アイコン);

  4. ツリーのレンダラーを設定します

    tree.setCellRenderer(Renderer);

理解できない場合は、デモを試してください

他のヒント

カスタムリーフレンダラーを使用できます。 GetTreeCellRenderComponent()メソッドをオーバーライドします。

コンポーネントをレンダリングするとき。

パネルを使用してテキストを最初に配置し、アイコンがテキストをフォローします。

そして、コンポーネントを返します。

public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean selected, boolean expanded, boolean leaf, int row,
        boolean hasFocus) {


    JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);
    Component com = renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);
    l.setIcon(YOUR_IMAGE);
    l.setText(value.toString());



        panel.removeAll();
        panel.add(this, BorderLayout.EAST);
        panel.add(j);
        return panel;



}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top