1. package com.neusoft.test;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Choice;
  5. import java.awt.Color;
  6. import java.awt.GridLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.ItemEvent;
  10. import java.awt.event.ItemListener;
  11. import javax.swing.ImageIcon;
  12. import javax.swing.JButton;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JPanel;
  16.  
  17. public class Test05 extends JFrame implements ActionListener, ItemListener{
  18. int m = 1;
  19. int n = 2;
  20. int peace = 0;
  21. int win = 0;
  22. int lose = 0;
  23. int all = 0;
  24. JButton jb1,jb2;
  25. JLabel jl1,jl2,jl2i,jl3,jl3i,jl4,jl5;
  26. ImageIcon img1,img2;
  27. Choice ch;
  28. JPanel jp1,jp2,jp3,jp4,jp5,jp6;
  29.  
  30. public Test05(){
  31. jb1 = new JButton("确定出拳");
  32. jb2 = new JButton("退出");
  33.  
  34. //设置监听
  35. jb1.addActionListener(this);
  36. jb2.addActionListener(this);
  37.  
  38. jl1 = new JLabel("猜拳小游戏");
  39. jl2 = new JLabel("我方出拳");
  40. jl3 = new JLabel("敌方出拳");
  41. jl4 = new JLabel("请出拳...");
  42. jl5 = new JLabel("您玩了"+all+"局,平了"+peace+"局,赢了"+win+"局,输了"+lose+"局");
  43.  
  44. System.out.println(m);
  45. img1 = new ImageIcon("D:/mkn/test/img/"+m+".png");
  46. img2 = new ImageIcon("D:/mkn/test/img/"+n+".png");
  47.  
  48. jl2i = new JLabel(img1);
  49. jl3i = new JLabel(img2);
  50.  
  51. ch = new Choice();
  52. ch.add("石头");
  53. ch.add("剪刀");
  54. ch.add("布");
  55. ch.addItemListener(this);
  56.  
  57. jp1 = new JPanel(new BorderLayout());
  58. jp2 = new JPanel();
  59. jp3 = new JPanel(new BorderLayout());
  60. jp4 = new JPanel(new BorderLayout());
  61. jp5 = new JPanel(new GridLayout(5,1));
  62. jp6 = new JPanel(new BorderLayout());
  63.  
  64. jp2.setSize(600, 25);
  65. jp2.setBackground(Color.red);
  66. jp3.setSize(280, 300);
  67. jp4.setSize(280, 300);
  68. jp5.setSize(40, 300);
  69. jp6.setSize(600, 25);
  70. // jp6.setBackground(Color.GRAY);
  71. jp2.add(jl1); //标题
  72. jp3.add(jl2,BorderLayout.NORTH); //
  73. jp3.add(jl2i,BorderLayout.CENTER);
  74. jp4.add(jl3,BorderLayout.NORTH);
  75. jp4.add(jl3i, BorderLayout.CENTER);//敌方出拳
  76. jp5.add(ch);
  77. jp5.add(jb1);
  78. jp5.add(jb2);
  79. jp6.add(jl4,BorderLayout.WEST);
  80. jp6.add(jl5,BorderLayout.EAST);//结果
  81.  
  82. jp1.add(jp2,BorderLayout.NORTH);
  83. jp1.add(jp3,BorderLayout.WEST);
  84. jp1.add(jp4,BorderLayout.CENTER);
  85. jp1.add(jp5,BorderLayout.EAST);
  86. jp1.add(jp6,BorderLayout.SOUTH);
  87.  
  88. this.add(jp1);
  89.  
  90. this.setTitle("猜拳小游戏");
  91. this.setSize(540,300);
  92. // this.setLayout(new BorderLayout());
  93. this.setLocationRelativeTo(null); //居中
  94. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  95. this.setVisible(true);
  96. this.setResizable(false); //窗口大小可变
  97.  
  98. }
  99.  
  100. @Override
  101. public void actionPerformed(ActionEvent e) {
  102. // TODO Auto-generated method stub
  103. if(e.getActionCommand()=="确定出拳"){
  104. n = (int)(1+Math.random()*(3));
  105. jl3i.setIcon(new ImageIcon("D:/mkn/test/img/"+n+".png"));
  106. if (m - n == 0) {
  107. jl4.setText("您和计算机平局");
  108. peace++;
  109. }
  110. if (m - n == -1||m - n == 2) {
  111. jl4.setText("您赢了!!!");
  112. win++;
  113. }
  114. if (m - n == -2||m - n == 1) {
  115. jl4.setText("您输了!!!");
  116. lose++;
  117. }
  118. all++;
  119. jl5.setText("您玩了"+all+"局,平了"+peace+"局,赢了"+win+"局,输了"+lose+"局");
  120. // System.out.println(n);
  121. }else{
  122. this.dispose();
  123. }
  124. }
  125. public static void main(String[] args) {
  126. Test05 test05 = new Test05();
  127. }
  128.  
  129. @Override
  130. public void itemStateChanged(ItemEvent e) {
  131. if(e.getSource()==ch){
  132. Choice temp=(Choice)e.getSource();
  133. if (temp.getSelectedItem() == "石头") {
  134. m = 1;
  135. }
  136. if (temp.getSelectedItem() == "剪刀") {
  137. m = 2;
  138. }
  139. if (temp.getSelectedItem() == "布") {
  140. m = 3;
  141. }
  142. jl2i.setIcon(new ImageIcon("D:/mkn/test/img/"+m+".png"));
  143. // System.out.println(m);
  144. }
  145.  
  146. }
  147.  
  148. }

运行结果:

Java石头剪刀布小游戏的更多相关文章

  1. Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...

  2. Java五子棋小游戏(控制台纯Ai算法)

    Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...

  3. 从零开始学java(小游戏 石头剪刀布)

    Game.java package com.java;import java.util.Scanner;public class Game {        private Player player ...

  4. Java猜拳小游戏(剪刀、石头、布)

    1.第一种实现方法,调用Random数据包,直接根据“1.2.3”输出“剪刀.石头.布”.主要用了9条输出判断语句. import java.util.Random; import java.util ...

  5. Java开发小游戏 用键盘控制精灵在游戏中上下左右跑动 窗体小游戏可打包下载,解压后双击start运行

    package com.swift; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.Gam ...

  6. Java经典小游戏——贪吃蛇简单实现(附源码)

    一.使用知识 Jframe GUI 双向链表 线程 二.使用工具 IntelliJ IDEA jdk 1.8 三.开发过程 3.1素材准备 首先在开发之前应该准备一些素材,已备用,我主要找了一个图片以 ...

  7. Java 坦克小游戏心得

    原本是闲得慌无聊才去尝试做这个项目的,因为小时候玩小霸王的游戏机,那个时候经常玩这个游戏吧,特别是喜欢那种自定义地图的模式,觉得自由度非常不错.总之关于这个游戏,想说的一大堆.鉴于能有个空闲的时间,打 ...

  8. 微信小程序开发入门学习(1):石头剪刀布小游戏

    从今天起开始捣鼓小程序了2018-12-17   10:02:15 跟着教程做了第一个入门实例有兴趣的朋友可以看看: 猜拳游戏布局 程序达到的效果 猜拳游戏的布局是纵向显示了三个组件:文本组件(tex ...

  9. 一个基于Myeclipse开发的Java打地鼠小游戏(Appletcation)

    package javaes.zixue.wangshang.daima; 2 3 import java.awt.Cursor; import java.awt.Image; import java ...

随机推荐

  1. sublime介绍常用插件和快捷键

    简介 Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来的,它最初被设计为一个具有丰富扩展功能的Vim. 是一个跨平台的编辑器,同时支持Windows.Linux.M ...

  2. 从刷票了解如何获得客户端IP

    我的个人博客,源地址:http://www.woniubi.cn/get_client_ip/ 前两个星期帮一个朋友的亲戚的孩子刷票,谁让咱们是程序员呢.这当中也遇到过重装系统,除灰尘,淘宝购物,盗Q ...

  3. 算法练习-Palindrome Number

    判断回文整数 来源 https://leetcode.com/problems/palindrome-number/ 要求 判断一个整数是不是回文数,尽量减少内存暂用. 思路 可能的情况: 负数的应当 ...

  4. SaaS “可配置”和“多租户”架构的几种技术实现方式

    1.数据存储方式的选择 多租户(Multi-Tenant ),即多个租户共用一个实例,租户的数据既有隔离又有共享,说到底是要解决数据存储的问题. 常用的数据存储方式有三种. 方案一:独立数据库   一 ...

  5. 翻译-ExcelDNA开发文档

    转载自个人主页 前言 翻译开源项目ExcelDNA开发文档 异步处理 ExcelDNA支持两种异步函数: RTD,该函数适用与Excel2003及以上版本,(当你使用ExcelAsyncUtil.*时 ...

  6. 02、体验Spark shell下RDD编程

    02.体验Spark shell下RDD编程 1.Spark RDD介绍 RDD是Resilient Distributed Dataset,中文翻译是弹性分布式数据集.该类是Spark是核心类成员之 ...

  7. 洛谷 P1266 速度限制

    题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线.开车时每条道路的限速成为最关键的问题.不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快.一种可以辩解的解决方案 ...

  8. IOS TableView代理设置 table的行高

    // 设置行高(每一行的高度一致) self.tableView.rowHeight = ; self.tableView.delegate = self; #pragma mark - 代理方法 / ...

  9. framework7 v2.x轮播图写法:

    <div class="swiper-container swiper-init travel-index-swiper"> <div class="s ...

  10. office2010激活

    软件下载链接: http://yunpan.cn/cySGrE99u6uv3 (提取码:c612) 下面是操作演示,我录制成gif文件了,下载下来用浏览器打开 360网盘:http://yunpan. ...