We would like to know how to shake JFrame.
import java.awt.BorderLayout; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; // www .j a v a 2 s . c o m import javax.swing.JButton; import javax.swing.JFrame; public class Main extends JFrame { private JButton buzz = new JButton("BUZZ ME!!"); public void prepareGUI() { buzz.addActionListener(new BuzzActionListener(this)); setSize(300, 200); getContentPane().add(buzz, BorderLayout.NORTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String st[]) { Main bFrame = new Main(); bFrame.prepareGUI(); bFrame.setVisible(true); } } class BuzzActionListener implements ActionListener { JFrame frame; Point currLocation; int iDisplaceXBy = 5; int iDisplaceYBy = -10; public BuzzActionListener(JFrame frame) { this.frame = frame; } @Override public void actionPerformed(ActionEvent evt) { currLocation = frame.getLocationOnScreen(); Point position1 = new Point(currLocation.x + iDisplaceXBy, currLocation.y + iDisplaceYBy); Point position2 = new Point(currLocation.x - iDisplaceXBy, currLocation.y - iDisplaceYBy); for (int i = 0; i < 20; i++) { frame.setLocation(position1); frame.setLocation(position2); } frame.setLocation(currLocation); } }