代码如下:

package com.ytu.lc;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Random;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;public class Hangman extends JFrame implements ActionListener {private JLabel label = null;private JTextField text = null;private char answer = 'a';private Random random = null;private String[] words = { "write", "that", "program", "problem","yourself" };private String str = null;private int count = 0;private int number = 0;private ArrayList a = new ArrayList();private String letter = null;public Hangman() {setTitle("猜单词");random = new Random();label = new JLabel("提示消息:");text = new JTextField();JButton btn = new JButton("开始");btn.setActionCommand("start");btn.addActionListener(this);add(btn, BorderLayout.WEST);btn = new JButton("确定");btn.addActionListener(this);add(btn, BorderLayout.EAST);btn = new JButton("结束");btn.setActionCommand("end");btn.addActionListener(this);add(btn, BorderLayout.SOUTH);add(label, BorderLayout.NORTH);add(text, BorderLayout.CENTER);setSize(400, 300);setLocationRelativeTo(null);setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {new Hangman();}@Overridepublic void actionPerformed(ActionEvent e) {if ("start".equals(e.getActionCommand())) {str = words[random.nextInt(5)];System.out.println(str);count = 0;number = str.length();for (int i = 0; i < number; i++)// 给数组增加10个Int元素a.add(i);for (int i = 0; i < number; i++) {a.set(i, '*');label.setText("(Guess) Enter a letter in word ");for (int i1 = 0; i1 < str.length(); i1++) {label.setText(label.getText() + a.get(i1));}label.setText(label.getText() + " > ");}} else if ("end".equals(e.getActionCommand())) {label.setText("Game over!");} else {String letter = text.getText().toLowerCase();text.setText("");int m = 0;for (int i = 0; i < str.length(); i++) {if (a.get(i).equals(letter.charAt(0))) {m = 1;} else if (str.charAt(i) == letter.charAt(0)) {a.set(i, letter.charAt(0));number--;m = 1;}}if (m == 0) {label.setText("提示消息:" + letter + " is no in the word");count++;} else if (m == 2) {label.setText("提示消息:" + letter + " is already in the word");} else if (m == 1) {if (number != 0) {label.setText("(Guess) Enter a letter in word ");for (int i1 = 0; i1 < str.length(); i1++) {label.setText(label.getText() + a.get(i1));}label.setText(label.getText() + " > ");} else {label.setText("The word is " + str + ". You missed "+ count + " time.  ");}}}}
}

运行结果:

JAVA图形界面三星题之Hangman相关推荐

  1. Java图形编程实验总结_实验二java图形界面编程2015级.doc

    实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...

  2. java图形界面重写坐标_重写自由软件和计算机图形的历史

    java图形界面重写坐标 您还记得上世纪90年代初大多数屏幕保护程序都显示飞扬的3D金属徽标的日子吗? 你有一个吗? 在本文中,我想回顾一下过去,并简要回顾计算机图形学(CG)从研究实验室过渡到每个人 ...

  3. java图形界面UI设计——简单的计算器

    java图形界面UI设计--简单的计算器# 可以实现连续的输入: java图形界面UI设计--简单的计算器下载

  4. java界面布局举例,java图形界面实例

    java写一个图形程序,让数组输出在图形界面上 代码怎么写?别那么复杂的. 已把程序文件打包上传了,并附上运算结果图. import javax.swing.*;import java.awt.*;i ...

  5. Java图形界面编程模拟ATM自助取款系统

    本人学习Java时一直想做一个图形界面的程序,所以利用闲暇时间,做了一个Java图形界面编程模拟ATM自助取款系统,界面简洁漂亮,基本功能ATM功能实现. 程序初始时 考号:123456 密码:123 ...

  6. Java 图形界面基础

    Java图形界面基础 当你开始验证自己的PC的JDK环境是否配置完成的时候有没有想过这个窗体是怎么做出来的呢? 用几句简单的Java语言就可以做出这样的窗体,不信我可以写给给位看. import ja ...

  7. java图形界面(七)---组件综合练习

    [题目]java图形界面(七)---组件综合练习 [时间]2020.05.21 周四 目录 七.组件综合练习 7.1 练习-为空判断. 7.2 练习-数字校验. 7.3 练习-账号密码验证. 7.4 ...

  8. java图形界面多线程_多线程编程、Java I/O系统和Java图形界面编程

    多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同 ...

  9. Java图形界面开发利器WindowBuilder

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

最新文章

  1. Spring Cloud 随笔:记录在使用 OAuth2 遇到的巨坑
  2. zuul filter
  3. vue中监听input框获取焦点,失去焦点的问题
  4. 最最简单的CentOs6在线源搭建
  5. pycharm控制台调试程序
  6. Winfrom窗体间传值
  7. date oracle 显示毫秒_Oracle date timestamp 毫秒 - 时间函数总结
  8. IdentityServer 部署踩坑记
  9. 字符串存入xls matlab,数组 – MATLAB:将字符串写入Excel
  10. oracle中包含用什么函数,oracle中包含用什么函数 oracle数据包含有什么函数?
  11. mmap和MappedByteBuffer
  12. DockOne微信分享( 一零二):基于容器的日志管理实践
  13. 看了IDC 2018 Q1存储报告,才知道宏杉科技为什么稳稳的
  14. oracle database 10g rman备份与恢复pdf,Oracle Database10g RMAN备份与恢复
  15. 入驻就有收益的自媒体平台:趣头条
  16. android 读取excel表格数据,并存入数据库
  17. getElementById(‘divid‘).innerHTML赋值【js基础】
  18. [含lw+源码等]微信小程序考勤签到管理系统+后台管理系统[包运行成功]Java毕业设计计算机毕设
  19. 光影魔术手出现load XAR失败,解决办法。
  20. 北邮邮箱配置客户端教程(如Windows自带邮件)

热门文章

  1. LEAST() GREATEST()
  2. 报错:‘gbk‘ codec can‘t decode byte 0x98 in position
  3. atm系统的用例模型_ATM自动取款机用例图
  4. docker访问宿主机端口
  5. nmap:网络探测工具和安全/端口扫描器
  6. 计算机乘法公式多列,书生妙招:一招轻松搞定Excel多列数据乘积后求和问题-excel乘法公式...
  7. 《美国新闻与世界报道》公布2021年全球最佳大学排行榜
  8. 层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理
  9. springboot校园小助手
  10. ST-GCN复现以及配置环境遇到的问题(Colab)