/*
* Fichero: MiRender.java
* Autor: Chuidiang
* Fecha: 2/03/07 6:40
*/
package chuidiang.ejemplos;
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeCellRenderer;
/**
* Un Render propio para árbol
*
* @author Chuidiang
*
*/
public class MiRender extends JPanel implements TreeCellRenderer
{
/**
* Serial uid para evitar warnings.
*/
private static final long serialVersionUID = 7187242510053519089L;
/** Boton con el icono */
private JButton botonIcono = new JButton();
/**
* Botón para el texto
*/
private JButton botonTexto = new JButton();
/**
* Icono para las hojas del arbol
*/
private ImageIcon iconoHoja = new ImageIcon("d:/futbol.gif");
/**
* Icono para nodos abiertos
*/
private ImageIcon iconoAbierto = new ImageIcon("d:/hombre.gif");
/**
* Icono para nodos cerrados
*/
private ImageIcon iconoCerrado = new ImageIcon("d:/viejo.gif");
/**
* Crea un nuevo objeto MiRender.
*/
public MiRender()
{
add(botonIcono);
add(botonTexto);
setOpaque(false);
}
/**
* Implementación del método de la interface TreeCellRenderer
*/
public Component getTreeCellRendererComponent(
JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus)
{
// Se pone el icono adecuado
if (leaf)
{
botonIcono.setIcon(iconoHoja);
}
else if (expanded)
{
botonIcono.setIcon(iconoAbierto);
}
else
{
botonIcono.setIcon(iconoCerrado);
}
// Y el texto.
botonTexto.setText(
((DefaultMutableTreeNode) value).getUserObject().toString());
return this;
}
}
|