En los ejemplos de SwingX que JXCollapsiblePane se usa con un botón, pero quiero transponerlo con eventos de mouse. En mi ejemplo, JXCollapsiblePane está cerrado al principio. Solo cuando el usuario viene con el mouse sobre el botón para abrir el JXCollapsiblePane. Cuando el mouse abandona el área, se supone que JXCollapsiblePane colapsa de nuevo. Mi problema: El JXCollapsiblePane no está contraído, cuando el mouse sale del área mediante el botón.Disparador JXCollapsiblePane con mouse sobre
public class CollapsiblePaneDemo
{
/**
* @param args
*/
public static void main(String[] args)
{
final JXCollapsiblePane cp =
new JXCollapsiblePane(JXCollapsiblePane.Direction.RIGHT);
// JXCollapsiblePane can be used like any other container
cp.setLayout(new BorderLayout());
// the Controls panel with a textfield to filter the tree
JPanel controls = new JPanel(new FlowLayout(FlowLayout.LEFT, 4, 0));
controls.add(new JLabel("Search:"));
controls.add(new JTextField(10));
controls.add(new JButton("Refresh"));
controls.setBorder(new TitledBorder("Filters"));
cp.add("Center", controls);
JXFrame frame = new JXFrame();
frame.setLayout(new BorderLayout());
// Then the tree - we assume the Controls would somehow filter the tree
JScrollPane scroll = new JScrollPane(new JTree());
// Put the "Controls" first
frame.add("Center", scroll);
// Show/hide the "Controls"
final JButton toggle = new JButton(cp.getActionMap()
.get(JXCollapsiblePane.TOGGLE_ACTION));
toggle.setText("-");
toggle.setPreferredSize(new Dimension(20, toggle.getSize().height));
toggle.addMouseListener(new MouseAdapter()
{
@Override
public void mouseEntered(MouseEvent e)
{
if (cp.getSize().width == 0)
{
toggle.doClick();
}
}
});
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add("Center", toggle);
panel.add("East", cp);
panel.addMouseListener(new MouseAdapter()
{
@Override
public void mouseExited(MouseEvent e)
{
if (!panel.contains(e.getPoint()))
{
toggle.doClick();
}
}
});
frame.add("East", panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
cp.setCollapsed(true);
frame.setVisible(true);
}
}
Gracias,
Hey ¿sabe cómo configurar la dirección de la animación de palanca? – mayooran