The LayoutAnimator makes it very easy to animate the transition of components from one
position to another.
- Create a LayoutAnimator based on the parent container.
- Move, show, hide components.
- Call
animate(int, long, int, double, double, java.beans.PropertyChangeListener)
()
For example:
public static void main(String[] args)
{
final JFrame frame = new JFrame();
final Container contentPane = frame.getContentPane();
for (String s : new String[]{BorderLayout.NORTH, BorderLayout.WEST, BorderLayout.EAST, BorderLayout.SOUTH})
{
final JButton button = new JButton(s);
button.addActionListener(new ActionListener()
{
public void actionPerformedOnSelection(ActionEvent e)
{
final LayoutAnimator layoutAnimator = new LayoutAnimator(contentPane);
final Component[] components = contentPane.getComponents();
for (int i = 0; i < components.length; i++)
{
final Component component = components[i];
component.setVisible(true);
}
final JButton button = (JButton) e.getSource();
button.setVisible(false);
layoutAnimator.animate(30, 300, 10, .6F, .14F, null);
}
});
contentPane.add(button, s);
}
final JLabel label = new JLabel("Press a button...");
label.setOpaque(true);
label.setHorizontalAlignment(JLabel.CENTER);
contentPane.add(label);
frame.setBounds(100, 100, 300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}