Olá a todos,
gostaria de saber se tem alguma maneira de colocar ícones personalizados em uma JTree???
[]'s
[quote=“vivi_grieco”]Olá a todos,
gostaria de saber se tem alguma maneira de colocar ícones personalizados em uma JTree???
[]'s[/quote]
Tem sim viv… bico
É so extender a classe DefaultTreeCellRenderer ( renderer da JTree ) e no método getTreeCellRendererComponent sefinir seu icone pelo metodo setIcon().
Certo ?!
Abraços!
desculpa minha ignorância… nunca trabalhei com JTree antes… vc poderia me dar um exemplo de cmo fazer isso??? :]
[code]/**
*
-
@author Administrador
*/
public class MyTreeRenderer extends javax.swing.tree.DefaultTreeCellRenderer {/** Creates a new instance of MyTreeRenderer */
public MyTreeRenderer() {
}/**
-
Retorna o componente de vizualizacao do node da TreeView.
*/
public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasfocus) {setIcon({seu icone}); setFont(new Font("Arial", Font.PLAIN, 10)); setText(value.toString()); return this;
};
}
[/code] -
Adaptando na JTree
[code] /**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame frame = new JFrame("JTree");
MyTreeRenderer renderer = new MyTreeRenderer();
JTree tree = new JTree();
tree.setCellRenderer(renderer);
frame.getContentPane().add(tree, BorderLayout.CENTER);
frame.setSize(600,400);
frame.show();
}
[/code]
É isso ai Vivi…
Abraços
eu fiz isso, só que mesmo assim o ícone não aparece…
Aparece alguma coisa pelo menos ? Tipo a tree com os icones default dela ? Ou fica brando e so aparece o texto ? Vc chegou a ver se ele ta passando pelo renderer que vc criou? Se ao menos passa pelo renderer, vai ver o modo que vc ta referenciando a imagem nao ta achando ela… O que vc ta colocando no setIcon();
Rs… desculpa o tanto de pergunta, mas…
Abraços,
oi Bruno,
consegui q aparecesse…
só me tira uma dúvida… se eu coloco setLeafIcon ou setOpenIcon ao invés de setIcon, nao aparece imagem nenhuma… vc sabe pq???
[/code]
consegui!!! modeifiquei um pouco o código e deu certo…
brigadinha!!!
[quote=“vivi_grieco”]consegui!!! modeifiquei um pouco o código e deu certo…
brigadinha!!![/quote]
Da API
setClosedIcon(Icon newIcon)
Sets the icon used to represent non-leaf nodes that are not expanded.
setLeafIcon(Icon newIcon)
Sets the icon used to represent leaf nodes.
setOpenIcon(Icon newIcon)
Sets the icon used to represent non-leaf nodes that are expanded.
O setIcon é herdado do componente default que ele retorna.
QUando vc usa os outros métodos do proprio DefaultTreeCellRenderer, vc aproveita a logica criada para testar se esta aberto, fechado, etc…
Abraços,