画像とJavaツリーノードオブジェクトの関連付け
質問
ツリーノードがあります。ツリーが表示されているときに、ノード名の横に画像を表示したいと思います。どうすればいいですか?
解決
画像からImageConを作成します
ImageIconアイコン= ....; (これを行う方法はいくつかあります)
DefaultTreeCellRendererのインスタンスを作成します
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
レンダラーのリーフアイコンフィールドを設定します
renderer.setleaficon(アイコン);
ツリーのレンダラーを設定します
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;
}
所属していません StackOverflow