震动效果提示

来源:互联网 发布:淘宝哪家滑板店好 编辑:程序博客网 时间:2024/06/05 11:01


使用java实现类似QQ的震动效果

思路是使用setLocation()方法来改变其位置

位置的移动范围,使用的是随机数生成

使用Timer 来实现启动震动效果


java 代码如下

public class ShakeDialog {private JDialog dialog=null;private Timer startTimer=null;private Point start=null;public ShakeDialog(JDialog dialog){this.dialog=dialog;}//开启计时器public void statTime(){final long startTime=System.currentTimeMillis();start=dialog.getLocation();startTimer=new Timer(10,new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stublong elapsed=System.currentTimeMillis()-startTime;//产生随机数Random random=new Random(elapsed);//使用时间作为随机种子int move=random.nextInt(50);dialog.setLocation(start.x+move, start.y+move);if(elapsed>1000){stopTimer();}}});startTimer.start();}//关闭计时器public void stopTimer(){startTimer.stop();dialog.setLocation(start);dialog.repaint();}public static void main(String[] args) {// TODO Auto-generated method stub        JOptionPane pane=new JOptionPane("震动提醒", JOptionPane.INFORMATION_MESSAGE);        JDialog dialog=pane.createDialog("震动效果提示对话框");        ShakeDialog shake=new ShakeDialog(dialog);        dialog.pack();//调整此窗口的大小,以适合其子组件的首选大小和布局。        dialog.setModal(false);//关闭模态        dialog.setVisible(true);        shake.statTime();}}

原创粉丝点击