私はツリーノードを持っています。ツリー表示時にノード名の横に画像を表示したい。どうすればいいですか?
1459 次
2 に答える
1
画像から ImageIcon を作成します
ImageIcon アイコン = ....; (これを行うにはいくつかの方法があります)
DefaultTreeCellRenderer のインスタンスを作成する
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
レンダラーのリーフ アイコン フィールドを設定します
renderer.setLeafIcon(アイコン);
ツリーのレンダラーを設定する
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 に答える