This discussion is archived
1 Reply Latest reply: Oct 5, 2012 6:59 AM by Kleopatra RSS

SwingX JXTreeTable and Tooltips

luppy Newbie
Currently Being Moderated
Hello

I have what I think is a small bug in JXTreeTable.
Using the attached self contained runnable example and the SwingX 1.6.4 library do the following

1. Hold mouse over any cell and the tooltip is displayed
2. Click the tree icon so the tree collapses and then click again so the tree expands again.
3. Now without leaving the bounds of the table (not moving the mouse out of the rows) move the mouse to any cell, the tooltip no longer gets displayed
4. Move the mouse out of the table anywhere on the screen
5. Move mouse back over the table, tooltips are now displayed again

I stress that this only happens when after the tree expandsion/collapse click the mouse must not move off any row otherwise the tooltips work again correctly

I was hoping someone out there might have a temporary solution and also whether they indeed experience the same problem, if so I can raise a bug as I can't find a currently active one for this
import org.jdesktop.swingx.JXFrame;
import org.jdesktop.swingx.JXTreeTable;
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode;
import org.jdesktop.swingx.treetable.DefaultTreeTableModel;
import org.jdesktop.swingx.treetable.TreeTableModel;
import org.jdesktop.swingx.treetable.TreeTableNode;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;

public class TreeTableToolTipTest extends JXFrame
{
    public TreeTableToolTipTest()
    {
        DefaultMutableTreeTableNode root = new DefaultMutableTreeTableNode();
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());
        root.add(new DefaultMutableTreeTableNode());

        final JXTreeTable table = new MyTreeTable(new MyTreeTableModel(root));
        table.setFillsViewportHeight(false);

        Container contentPane = getContentPane();
        contentPane.setLayout(new BorderLayout());
        contentPane.add(new JScrollPane(table), BorderLayout.CENTER);

        table.setRootVisible(true);
        table.expandAll();

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(800, 500);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        new TreeTableToolTipTest();
    }

    private class MyTreeTable extends JXTreeTable
    {
        private MyTreeTable(TreeTableModel treeModel)
        {
            super(treeModel);
        }

        public String getToolTipText(MouseEvent event)
        {
            return "Tooltip";
        }
    }

    private class MyTreeTableModel extends DefaultTreeTableModel
    {
        private MyTreeTableModel(TreeTableNode root)
        {
            super(root);
        }

        public Object getValueAt(Object node, int column)
        {
            return "Hello " + column;
        }

        public int getColumnCount()
        {
            return 4;
        }
    }
}
Thanks

Edited by: luppy on Oct 1, 2012 3:41 AM
  • 1. Re: SwingX JXTreeTable and Tooltips
    Kleopatra Journeyer
    Currently Being Moderated
    Thanks for filing the issue:

    http://java.net/jira/browse/SWINGX-1527

    fixed (cough ...) by yet-another-hack in TreeTableHackerExt4 (yeah, our hacks are versioned :-)

    Please let me know (all who use the treeTable!) how that works - and what it breaks ..

    Cheers
    Jeanette

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points