MyFrame:
package Gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyFrame extends JFrame implements Runnable,ActionListener {
JTextField inputLetter;
JLabel showLetter,showScore;
Thread giveLetter;
int sleepTime,score;
public MyFrame() {
init();
setTitle("打字母游戏");
setBounds(300, 300, 400, 100);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();
giveLetter = new Thread(this);
giveLetter.start();
}
void init() {
setLayout(new FlowLayout());
showLetter = new JLabel(" ",JLabel.CENTER);
showScore = new JLabel("分数:");
showLetter.setFont(new Font("Arial",Font.BOLD,22));
inputLetter = new JTextField(6);
add(new JLabel("显示字母:"));
add(showLetter);
add(new JLabel("输入所显示的字母(回车)"));
add(inputLetter);
add(showScore);
inputLetter.addActionListener(this);
}
public void setSleepTime(int sleepTime) {
this.sleepTime = sleepTime;
}
@Override
public void actionPerformed(ActionEvent e) {
String s = showLetter.getText().trim();
String letter = inputLetter.getText().trim();
if(s.equals(letter)){
score++;
showScore.setText("得分"+score);
giveLetter.interrupt();
}
inputLetter.setText(null);
}
@Override
public void run() {
char c;
while(true){
c = (char)(Math.random()*26 + 'a');
showLetter.setText("" + c +" ");
try{
Thread.sleep(sleepTime);
}catch (InterruptedException e){
}
}
}
}
main:
package Gui;
public class Main {
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
myFrame.setSleepTime(1500);
}
}