import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.Timer;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
public class gg {
private JDialog dialog;
private Point start;
//private Timer shakeTimer;
private Timer shakeTimer;
public gg(JDialog dialog) {
this.dialog = dialog;
}
public void startShake() {
final long startTime=System.currentTimeMillis();
start=dialog.getLocation();
shakeTimer=new Timer(10,new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
long elapsed=System.currentTimeMillis()-startTime;
Random random=new Random(elapsed);
int change=random.nextInt(10);
dialog.setLocation(start.x+change,start.y+0);
if(elapsed>=1000){
stopShake();
}
}
});
shakeTimer.start();
}
public void stopShake(){
shakeTimer.stop();
dialog.setLocation(start);
dialog.repaint();
}
public static void main(String[] args){
JOptionPane pane=new JOptionPane("java",JOptionPane.WARNING_MESSAGE);
JDialog d=pane.createDialog(null,"q");
gg g=new gg(d);
d.pack();
d.setModal(false);
d.setVisible(true);
g.startShake();
}
}