两种显示方式

第一种为文字显示  第二种为图形显示

import java.awt.*;//引入抽象窗口工具类包
import java.awt.event.*;//引入事件
import javax.swing.*;//引入组件//定义一个窗口类,该类实现 ActionListener 接口;
public class Game extends JFrame implements ActionListener{JButton shitou,jiandao,bu,clear; //定义 JButton 对象JPanel north,center,west,east,south; //定义 JPanel 对象JLabel label,imgLabel1,imgLabel2,label2; // 定义JLable 对象JMenuBar mbar;JMenu show;JMenuItem text,image,end,about;JDialog dlg;//对这做了修改//只需要将这里的图片换成你的石头剪刀布的图片路径就可以了static String STPATH = "shitou.png",JDPATH = "jiandao.png",BUPATH="bu.png";int status = 0;public Game() {setTitle("石头剪刀布游戏"); //设置窗体标题,修改标题为“石头剪刀布游戏”;setDefaultCloseOperation(EXIT_ON_CLOSE); //设置窗体关闭按钮setBounds(250, 250, 350, 350);  //设置窗体左上顶点坐标;设置窗体大小,修改窗体大小为:350×350;dlg = new JDialog(this,"about");dlg.setBounds(325, 375, 200, 150);dlg.setModal(true);dlg.add(new JLabel("this is a great game"),BorderLayout.CENTER);dlg.add(new JLabel("All rights reserved by Natural"),BorderLayout.SOUTH);mbar = new JMenuBar();//创建菜单栏并添加到窗体顶部setJMenuBar(mbar);show = new JMenu("结果显示方式");about = new JMenuItem("关于游戏");mbar.add(show);mbar.add(about);text = new JMenuItem("文本显示");image = new JMenuItem("图形显示");end = new JMenuItem("结束游戏");show.add(text);show.add(image);show.add(end);north = new JPanel(); //建立JPanel对象northnorth.setBackground(Color.yellow); //设置north的背景为yellowshitou = new JButton("石头");  //建立JButton对象 并设置文本为石头jiandao = new JButton("剪刀"); //建立JButton对象 并设置文本为剪刀bu = new JButton("布"); //建立JButton对象 并设置文本为布clear = new JButton("清空");//建立JButton对象 并设置文本为清空center = new JPanel(); //建立JPanel对象centercenter.setBackground(Color.green);   //设置center的背景为greenlabel = new JLabel("选择剪刀、石头、布开始游戏"); //建立JLabel对象label west = new JPanel();east = new JPanel();south = new JPanel();imgLabel1 = new JLabel();imgLabel2 = new JLabel();label2 = new JLabel();label2.setFont(new Font("",Font.BOLD,20));shitou.addActionListener(this); //给 shitou 添加事件监听器jiandao.addActionListener(this); //给 jiandao 添加事件监听器bu.addActionListener(this); //给 bu添加事件监听器clear.addActionListener(this); // 给 clear添加事件监听器about.addActionListener(this);text.addActionListener(this);image.addActionListener(this);end.addActionListener(this);north.add(shitou); //把 shitou 放进 north 中north.add(jiandao); // 把 jiandao 放进 north 中north.add(bu); //把 bu 放进 north 中north.add(clear);// 把 clear 放进 north 中center.add(label); //把 label 放进 center 中west.add(imgLabel1);east.add(imgLabel2);south.add(label2);add(north,BorderLayout.NORTH); //将north放入 JFrame中 并设置布局为容器的顶部add(center,BorderLayout.CENTER);// 将center放入 JFrame中 并设置布局为容器的中央add(west,BorderLayout.WEST);add(east,BorderLayout.EAST);add(south,BorderLayout.SOUTH);}public void actionPerformed(ActionEvent e) {if(e.getSource() == about) {dlg.setVisible(true);}if(e.getSource() == text) {status = 0;imgLabel1.setIcon(null);imgLabel2.setIcon(null);center.setBackground(Color.green);label.setText("选择剪刀、石头、布开始游戏");label2.setText("");imgLabel1.setText("");imgLabel2.setText("");}else if(e.getSource() == image) {status = 1;imgLabel1.setHorizontalTextPosition(JLabel.CENTER);imgLabel1.setVerticalTextPosition(JLabel.TOP);imgLabel2.setHorizontalTextPosition(JLabel.CENTER);imgLabel2.setVerticalTextPosition(JLabel.TOP);imgLabel1.setIcon(null);imgLabel2.setIcon(null);label2.setText("");imgLabel1.setText("");imgLabel2.setText("");float[] hsb= Color.RGBtoHSB(238, 238, 238, null);center.setBackground(Color.getHSBColor(hsb[0], hsb[1], hsb[2]));label.setText("选择剪刀、石头、布开始游戏");}if(status == 0) {if(e.getSource() == shitou){int i = (int)(Math.random()*10)%3;switch(i){case 0 : label.setText("你出石头,电脑出石头,平局!"); break;case 1 : label.setText("你出石头,电脑出剪刀,恭喜你赢了!"); break;case 2 : label.setText("你出石头,电脑出布,很遗憾你输了!"); break;}}if(e.getSource() == jiandao ){int i = (int)(Math.random()*10)%3;switch(i){case 0 : label.setText("你出剪刀,电脑出剪刀,平局!"); break;case 1 : label.setText("你出剪刀,电脑出布,恭喜你赢了!"); break;case 2 : label.setText("你出剪刀,电脑出石头,很遗憾你输了!"); break;}}if(e.getSource() == bu){int i = (int)(Math.random()*10)%3;switch(i){case 0 : label.setText("你出布,电脑出布,平局!"); break;case 1 : label.setText("你出布,电脑出石头,恭喜你赢了!"); break;case 2 : label.setText("你出布,电脑出剪刀,很遗憾你输了!"); break;}}if(e.getSource() == clear) {label.setText("选择剪刀、石头、布开始游戏");}}else if(status == 1) {if(e.getSource() == shitou){label.setText("");imgLabel1.setText("You");imgLabel2.setText("Computer");imgLabel1.setIcon(new ImageIcon(STPATH));int i = (int)(Math.random()*10)%3;switch(i){case 0 :imgLabel2.setIcon(new ImageIcon(STPATH));label2.setText("平局");break;case 1 : imgLabel2.setIcon(new ImageIcon(JDPATH));label2.setText("你赢了");break;case 2 : imgLabel2.setIcon(new ImageIcon(BUPATH));label2.setText("你输了");break;}}else if(e.getSource() == jiandao ){label.setText("");imgLabel1.setText("You");imgLabel2.setText("Computer");imgLabel1.setIcon(new ImageIcon(JDPATH));int i = (int)(Math.random()*10)%3;switch(i){case 0 : imgLabel2.setIcon(new ImageIcon(STPATH));label2.setText("你输了");break;case 1 : imgLabel2.setIcon(new ImageIcon(JDPATH));label2.setText("平局");break;case 2 : imgLabel2.setIcon(new ImageIcon(BUPATH));label2.setText("你赢了");break;}}else if(e.getSource() == bu){label.setText("");imgLabel1.setText("You");imgLabel2.setText("Computer");imgLabel1.setIcon(new ImageIcon(BUPATH));int i = (int)(Math.random()*10)%3;switch(i){case 0 : imgLabel2.setIcon(new ImageIcon(STPATH));label2.setText("你赢了");break;case 1 : imgLabel2.setIcon(new ImageIcon(JDPATH));label2.setText("你输了");break;case 2 : imgLabel2.setIcon(new ImageIcon(BUPATH));label2.setText("平局");break;}}else if(e.getSource() == clear) {imgLabel1.setIcon(null);imgLabel2.setIcon(null);label.setText("选择剪刀、石头、布开始游戏");label2.setText("");imgLabel1.setText("");imgLabel2.setText("");}}if(e.getSource() == end)dispose();}public static void main(String[] args) {Game g = new Game();g.setVisible(true);}
}

用 JAVA 语言设计如下界面的石头剪刀布游戏。游戏的一方点击界面上石头、剪刀、布按钮,游戏的另一方计算机随机选择,然后给出游戏结果。相关推荐

  1. 帮做Java_代写Heuristics、代做SAT、代写Java语言设计、代做Java代做Prolog|帮做Haskell程序...

    代写Heuristics.代做SAT.代写Java语言设计.代做Java代做Prolog|帮做Haskell程序Heuristics and OptimizationLab assignment #2 ...

  2. Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

    5.34(游戏:石头.剪刀.布)编程练习题3.17给出玩石头-剪刀-布游戏的程序.修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止 题目 题目概述 编程练习题3.17 破题 ...

  3. java设计界面_用Java语言设计一个界面,

    展开全部 首先:采用什么技术实现 java语言可以使用awt 和swing等技术实现图形界面 推荐使用Swing,因为Swing比AWT更专业,更漂e68a84e8a2ad32313133353236 ...

  4. java实现火车票查询_各位朋友,有人知道怎么用Java语言设计一个火车票购票系统吗?...

    一.需求分析 1.设计题目:车票管理系统 用JAVA语言和数据结构知识设计设计车票管理系统.要求如下所述: 一车站每天有n个发车班次,每个班次都有一个班次号(1.2.3-n),固定的发车时间,固定的路 ...

  5. 四川大学java语言程序设计_四川大学2014年计算机(软件)学院Java语言设计期末考试B卷程序.doc...

    四川大学期末考试试题(闭卷) (2014-2015学年第2学期) 课程号: 课程名称: Java语言程序设计(B 卷)任课教师: 适用专业年级: 学号: 姓名: 考试须知 四川大学学生参加由学校组织或 ...

  6. 用java设计一个动物声音 模拟器,Java语言 设计一个动物声音“模拟器”(用接口实现)...

    设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声,要求如下. 编写接口Animal Animal接口有两个抽象方法cry()和getAnimalName(),即要求实现 ...

  7. Java语言 设计一个动物声音“模拟器”(用接口实现)

    设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声,要求如下. 编写接口Animal Animal接口有两个抽象方法cry()和getAnimalName(),即要求实现 ...

  8. java语言设计论文_(C)论文(JAVA语言考试系统的设计与实现)

    3.2.3各类试题模块 1)选择题模块 http://www.paper51.com 初次进入选择题界面时,显示第一个题目的内容.可以用"上题"."下题" 按钮 ...

  9. 阿里巴巴的“双11”高并发秒杀终极版教程(Java语言设计)

    一. 秒杀系统架构设计都有哪些关键点? 说实话,作为一名程序员,我的技术能力也在公司业务的快速增长过程中得到了历练,并积累了一些大流量高并发网站架构设计和优化的经验,尤其是针对"秒杀&quo ...

最新文章

  1. 从对ML一窍不通到斩获AT等special offer,拿下大厂算法岗就靠它了
  2. AndroidStudio-4-如何导入项目
  3. 北大智能学院成立!AI视觉泰斗朱松纯教授任院长
  4. [JUC-5]ConcurrentHashMap源码分析JDK8
  5. Winform让扫描枪听话,防止在有焦点的地方就扫码输入的尴尬
  6. 【Spring实战】注入非Spring Bean对象
  7. 关于spark-shell和scala关系的一些个人想法
  8. 聊一聊数据导出那些事
  9. python命令行tab补全_python命令行下按tab建补全的方法
  10. 华为库存至少够缓冲一年;张朝阳质疑 5G 微波危害;苹果iOS 13不受支持机型曝光 | 极客头条...
  11. webAppbuilder微件使用教程3 地理处理微件
  12. 诡异的json包含bom头
  13. Transact-SQL 存储过程(c#调用执行)
  14. k8s与日志--journalbeat源码解读
  15. 【概率论】期望、方差、协方差、相关系数、相关与独立、样本估计量、点估计、区间估计
  16. Unity3D Demo
  17. 向日葵服务器维护,向日葵远程服务器
  18. | ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lin
  19. 《周一清晨的领导课》笔记-NO.1
  20. Android 客户端性能优化(魅族资深工程师毫无保留奉献)

热门文章

  1. 利用计算机制作多媒体最后一步,在复习课中应用信息技术提高教学效益
  2. 实习生我劝你用力卷!
  3. 50个高级mysql语句_50句高级SQL语句
  4. ag-grid 表头样式(颜色渲染)
  5. Mybatis————核心配置文件标签和动态常用的SQL标签
  6. 畅谈企业数字化之道——2018全球企业服务大会隆重召开
  7. php中mysql查询条件为数组_请教php中数组做为mysql查询条件wherexxinarray,怎么处理...
  8. 菜鸟裹裹升级退换货 全程可见让商家物流纠纷率降半
  9. 任意输入五个城市名称,如北京、上海、青岛、厦门、哈尔滨,也可以用拼音表示各城市,按从小到大输出各城市名称。
  10. php中加入 空格的代码,在HTML中插入空格的几种方法