首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:Java趣味编程:摇动的Java对话框

Java趣味编程:摇动的Java对话框

www.jz123.cn  2010-05-25   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

 import java.awt.Point;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import javax.swing.JDialog;
  import javax.swing.JOptionPane;
  import javax.swing.Timer;
  public class Main {
  JDialog dialog;
  Point naturalLocation;
  Timer shakeTimer;
  public Main(JDialog d) {
  dialog = d;
  }
  public void startShake() {
  final long startTime;
  naturalLocation = dialog.getLocation();
  startTime = System.currentTimeMillis();
  shakeTimer = new Timer(5, new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  double TWO_PI = Math.PI * 2.0;
  double SHAKE_CYCLE = 50;
  long elapsed = System.currentTimeMillis() - startTime;
  double waveOffset = (elapsed % SHAKE_CYCLE) / SHAKE_CYCLE;
  double angle = waveOffset * TWO_PI;
  int SHAKE_DISTANCE = 10;
  int shakenX = (int) ((Math.sin(angle) * SHAKE_DISTANCE) + naturalLocation.x);
  dialog.setLocation(shakenX, naturalLocation.y);
  dialog.repaint();
  int SHAKE_DURATION = 1000;
  if (elapsed >= SHAKE_DURATION)
  stopShake();
  }
  });
  shakeTimer.start();
  }
  public void stopShake() {
  shakeTimer.stop();
  dialog.setLocation(naturalLocation);
  dialog.repaint();
  }
  public static void main(String[] args) {
  JOptionPane pane = new JOptionPane("your message",JOptionPane.ERROR_MESSAGE, JOptionPane.OK_OPTION);
  JDialog d = pane.createDialog(null, "title");
  Main dec = new Main(d);
  d.pack();
  d.setModal(false);
  d.setVisible(true);
  dec.startShake();
  }
  }


上一篇:Java线程中sleep和wait的区别 下一篇:理解Java的GC与幽灵引用

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图