La meilleure façon de mettre les info-bulles pour JTree?

depuis JTree & TreeModel ne fournissons pas les info-bulles tout droit sorti de la boîte, qu'en pensez-vous, quelle serait la meilleure façon d'avoir de l'élément spécifique info-bulles pour les JTree?

Edit: (pour Répondre à ma propre question par la suite.)

@Zarkonnen: Merci pour le getTooltipText idée.

J'ai trouvé un autre (peut-être encore un peu plus) de manière à substituer DefaultTreeCellRenderer et pensé le partager:

public class JTreeWithToolTips {
    private static class OwnRenderer extends DefaultTreeCellRenderer {
        @Override
        public Component getTreeCellRendererComponent(JTree tree, Object value,
                boolean sel, boolean expanded, boolean leaf, int row,
                boolean hasFocus) {
            setToolTipText("foobar" + row);
            return super.getTreeCellRendererComponent(tree, value, sel,
                    expanded, leaf, row, hasFocus);
        }
    }

    public static void main(String[] args) {
        JTree tree = new JTree(new Object[] { "foo", "bar", "foobar" });
        tree.setCellRenderer(new OwnRenderer());
        ToolTipManager.sharedInstance().registerComponent(tree);

        JFrame frame = new JFrame();
        frame.getContentPane().add(tree);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
  • Votre réponse doit être dans une réponse, afin que les gens peuvent voter pour elle.
  • DefaultTreeCellRenderer#getTreeCellRendererComponent est appelé beaucoup de choses et faire de ce trop lourd peut faire des trucs pas fonctionner comme prévu. Comme les info-bulles qui devrait montrer, mais ne le font pas. Primordial JTree#getToolTipText(MouseEvent e) n'est appelée que lorsque c'est nécessaire et en tant que tel est une bien meilleure solution!
  • Lorsque j'ai essayé ce que l'info-bulle n'apparaissent pas. Zarkonnen réponse fonctionné bien.
InformationsquelleAutor Touko | 2008-11-07