• 简易打地鼠游戏


      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 }
  • 相关阅读:
    从国内流程管理软件市场份额看中国BPM行业发展
    为什么流程是成功企业的关键?
    港真,到底应该选择OA还是BPM?
    hello world
    i40e网卡驱动遇到的一个问题
    suse 11 sp3编译报错问题
    linux scsi相关的一些学习笔记
    linux tcp 在timewait 状态下的报文处理
    趋势科技 redirfs模块的一个小问题
    linux 3.10 一个扇区异常可能引发的hung
  • 原文地址:https://www.cnblogs.com/the-wang/p/7133160.html
Copyright © 2020-2023  润新知