代码如下:
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();
}
@Override
public 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. ");
}
}
}
}
}
运行结果: