两种显示方式

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

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. css【清除浮动】常用方法*********** ******* *****
  2. HDU 1867 A + B for you again KMP解决问题的方法
  3. vue中Axios网络请求之Vue知识点归纳(十)
  4. 机器学习:用梯度下降法实现线性回归
  5. 十六进制编辑器--HxD和FlexHex
  6. 联想计算机无线网络设置密码,联想(Lenovo)路由器怎么设置密码?
  7. 用mui索引实现动态数据仿通讯录的功能
  8. TP5.1使用 GatewayWorker 进行 socket 通讯
  9. uefi启动适合什么计算机,如何判断自己的电脑是否支持uefi启动模式?
  10. mac 剪切移动文件
  11. 深入学习用 Go 编写 HTTP 服务器
  12. 苹果如何做ASO优化?优化的主要思路有哪些?
  13. git常用操作--分支同步master 本地库提交到远程分支
  14. 机器学习(Hands on)第二章修正版完整代码
  15. 冒泡排序由浅入深详细分析图解
  16. iOS内购(IAP,In App Purchases-在APP内部支付),设置及使用
  17. 对于大型公司项目平台选择j2ee的几层认识(一)
  18. 运营一款电视盒子需要注意什么?
  19. FreeSWITCH基本操作
  20. ASP.NET仿新浪微博下拉加载更多数据瀑布流效果

热门文章

  1. java前台计算date差,js计算时间差代码【包括计算,天,时,分,秒】_javascri
  2. 【如何使用Godaddy进行域名解析】+【查看虚拟主机ip】
  3. winform的RichTextBox使用
  4. 分析一种极低成本的220V转5V电路——阻容降压电路
  5. ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转
  6. 【设计模式】-装饰者模式
  7. cv2.VideoCapture从摄像头获取视频流并处理但是处理速度慢
  8. 计算机专业用锐龙笔记本,近期要买笔记本的朋友先等等!AMD锐龙5000系列笔记本马上就来...
  9. 影视后期制作就业公司怎么选?
  10. 驱动蓝屏0x50 PAGE_FAULT_IN_NONPAGED_AREA