JAVA图形界面三星题之Hangman

来源:互联网 发布:python识别验证码 编辑:程序博客网 时间:2024/05/18 01:43

代码如下:

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.  ");}}}}}

运行结果:





0 0
原创粉丝点击