zoukankan      html  css  js  c++  java
  • 简易打地鼠游戏

      1 import java.util.Random;
      2 import java.util.Timer;
      3 import java.util.TimerTask;
      4 
      5 import org.eclipse.swt.graphics.Image;
      6 import org.eclipse.swt.layout.GridData;
      7 import org.eclipse.swt.widgets.Display;
      8 import org.eclipse.swt.widgets.Label;
      9 import org.eclipse.swt.widgets.Shell;
     10 import org.eclipse.swt.widgets.Label;
     11 import org.eclipse.swt.SWT;
     12 import org.eclipse.swt.events.MouseEvent;
     13 import org.eclipse.swt.events.MouseListener;
     14 import org.eclipse.swt.widgets.Button;
     15 import org.eclipse.swt.events.SelectionAdapter;
     16 import org.eclipse.swt.events.SelectionEvent;
     17 
     18 public class PlayMouse {
     19     public static int sorce = 0;
     20     private Display display = Display.getDefault();;
     21     private Shell shell = new Shell(display);
     22     public Label[] labels = { new Label(shell, SWT.NONE), new Label(shell, SWT.NONE), new Label(shell, SWT.NONE),
     23             new Label(shell, SWT.NONE), new Label(shell, SWT.NONE), new Label(shell, SWT.NONE),
     24             new Label(shell, SWT.NONE), new Label(shell, SWT.NONE), new Label(shell, SWT.NONE) };
     25 //    private Thread thread = null;
     26     private Runnable runnable;
     27     private boolean exit = true;
     28     public static void main(String[] args) {
     29         PlayMouse playMouse = new PlayMouse();
     30 
     31     }
     32 
     33     public PlayMouse() {
     34 
     35         shell.setSize(800, 600);
     36         shell.setText("PlayMouse");
     37         shell.setLayout(null);
     38 
     39         shell.setBackgroundImage(new Image(display, "Image\3.jpg"));
     40         Image image = new Image(display, "Image\11.jpg");
     41 
     42         labels[0].setBounds(38, 147, 111, 74);
     43         labels[1].setBounds(291, 147, 111, 74);
     44         labels[2].setBounds(603, 147, 111, 74);
     45         labels[3].setBounds(38, 318, 111, 74);
     46         labels[4].setBounds(291, 318, 111, 74);
     47         labels[5].setBounds(603, 318, 111, 74);
     48         labels[6].setBounds(38, 445, 111, 74);
     49         labels[7].setBounds(291, 445, 111, 74);
     50         labels[8].setBounds(603, 445, 111, 74);
     51 
     52         Label label = new Label(shell, SWT.NONE);
     53         label.setBounds(539, 29, 123, 20);
     54         label.setText("您的分数为:" + sorce + " 分");
     55 
     56         Button btnNewButton = new Button(shell, SWT.NONE);
     57         btnNewButton.setBounds(0, 44, 98, 30);
     58         btnNewButton.setText("开始");
     59         Button btnNewButton_1 = new Button(shell, SWT.NONE);
     60         btnNewButton_1.setBounds(126, 44, 98, 30);
     61         btnNewButton_1.setText("停止");
     62         btnNewButton_1.setEnabled(false);
     63         btnNewButton.addSelectionListener(new SelectionAdapter() {
     64             @Override
     65             public void widgetSelected(SelectionEvent e) {
     66                 Thread thread = null;
     67                 display.asyncExec(thread);
     68                 thread = new Thread() {
     69                     public void run() {
     70                         exit = true;//用于停止时跳出循环
     71                         while (exit) {
     72                             display.asyncExec(runnable = new Runnable() {
     73                                 @Override
     74                                 public void run() {
     75                                     for (Label l : labels) {
     76                                         l.setVisible(false);
     77                                     }
     78                                     int mousenum = (int) (Math.random() * 9);
     79                                     System.out.println(mousenum);
     80                                     labels[mousenum].setVisible(true);
     81                                 }
     82                             });
     83                             try {                            
     84                                 thread.sleep(1000);
     85                             } catch (InterruptedException e) {
     86                                 // TODO Auto-generated catch block
     87                                 e.printStackTrace();
     88                             }
     89                         }
     90                     }
     91                 };
     92                 thread.start();
     93                 btnNewButton.setEnabled(!btnNewButton.isEnabled());
     94                 btnNewButton_1.setEnabled(!btnNewButton_1.isEnabled());
     95             }
     96         });
     97 
     98         btnNewButton_1.addSelectionListener(new SelectionAdapter() {
     99             @Override
    100             public void widgetSelected(SelectionEvent e) {
    101                 exit = false;//跳出循环线程终止
    102                 btnNewButton.setEnabled(!btnNewButton.isEnabled());
    103                 btnNewButton_1.setEnabled(!btnNewButton_1.isEnabled());
    104             }
    105         });
    106 
    107         for (Label l : labels) {
    108             l.setText("");
    109             l.setBackgroundImage(image);
    110             // l.setVisible(false);
    111             l.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
    112                 @Override
    113                 public void mouseDown(MouseEvent e) {
    114                     PlayMouse.sorce++;
    115                     label.setText("您的分数为:" + sorce + " 分");
    116                     l.setVisible(false);
    117                 }
    118             });
    119         }
    120         shell.open();
    121         shell.layout();
    122         while (!shell.isDisposed()) {
    123             if (!display.readAndDispatch()) {
    124                 display.sleep();
    125             }
    126         }
    127 
    128     }
    129 }
  • 相关阅读:
    前端面试官如何从笔试中选拔人才
    webapp应用--模拟电子书翻页效果
    用webpack实现前端自动化构建
    webpack3中文版使用参考文档--全面解析webpack.config.js
    300行代码揭密轮播插件核心代码的实现过程
    免费视频播放器videojs中文教程
    微信小程序开发初体验
    前端工程自动化构建总结
    细说前端自动化打包工具--webpack
    H5程序员如何利用cordova开发跨平台应用
  • 原文地址:https://www.cnblogs.com/the-wang/p/7133160.html
Copyright © 2011-2022 走看看