W przykładach SwingX'a, który JXCollapsiblePane jest używany z przyciskiem, ale chcę go transponować za pomocą zdarzeń myszy. W moim przykładzie, JXCollapsiblePane jest zamykany na początku. Tylko wtedy, gdy użytkownik jest wyposażony w myszkę na przycisku, aby otworzyć JXCollapsiblePane. Kiedy mysz opuści obszar, który prawdopodobnie ponownie zwinął się JXCollapsiblePane. Mój problem: JXCollapsiblePane nie jest zwinięty, gdy mysz opuszcza obszar za pomocą przycisku.Wywołaj JXCollapsiblePane z myszką nad
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);
}
}
Dzięki
Hej wiesz jak ustawić kierunek animacji przełączania? – mayooran