1

私はツリーノードを持っています。ツリー表示時にノード名の横に画像を表示したい。どうすればいいですか?

4

2 に答える 2

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

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

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

    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

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

    renderer.setLeafIcon(アイコン);

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

    tree.setCellRenderer(レンダラー);

わからない場合は、デモを試してください

于 2009-11-09T07:02:32.150 に答える
0

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

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

パネルを使用して、最初にテキストを配置し、テキストの後にアイコンを配置します。

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

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;



}
于 2012-01-27T04:05:24.047 に答える