package schnellesspiel;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import java.awt.Font;
import java.awt.Image;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Random;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
public class MainFrame extends JFrame {
private JPanel contentPane;
private JTextField texteingabe;
private JTextField textspiel;
private JTextField textuhr;
private int dummy = 0;
static private boolean running;
static private boolean running2;
private int HS = 0;
private int sek = 0;
private int min = 0;
private int h = 0;
private int HS1 = 100;
private int sek1 = 100;
private int min1 = 100;
private JTextField textgewinner;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public MainFrame() {
Thread t = new Thread(new timer());
Thread uhr = new Thread(new UhrzeitThread());
Thread scan = new Thread(new scanner());
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 303, 302);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
texteingabe = new JTextField();
texteingabe.setFont(new Font("Tahoma", Font.BOLD, 99));
texteingabe.setHorizontalAlignment(SwingConstants.CENTER);
texteingabe.setBounds(10, 122, 123, 128);
contentPane.add(texteingabe);
texteingabe.setColumns(10);
textspiel = new JTextField();
textspiel.setFont(new Font("Tahoma", Font.BOLD, 99));
textspiel.setHorizontalAlignment(SwingConstants.CENTER);
textspiel.setEditable(false);
textspiel.setBounds(151, 122, 123, 128);
contentPane.add(textspiel);
textspiel.setColumns(10);
textuhr = new JTextField();
textuhr.setEditable(false);
textuhr.setBounds(151, 11, 123, 20);
contentPane.add(textuhr);
textuhr.setColumns(10);
JButton knopfstart = new JButton("Start");
knopfstart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (t.isAlive() && uhr.isAlive() && scan.isAlive()) {
HS = 0;
sek = 0;
min = 0;
h = 0;
running2 = true;
knopfstart.setVisible(false);
} else {
t.start();
uhr.start();
scan.start();
running2 = true;
knopfstart.setVisible(false);
}
}
});
knopfstart.setBounds(10, 10, 123, 20);
contentPane.add(knopfstart);
textgewinner = new JTextField();
textgewinner.setEditable(false);
textgewinner.setBounds(10, 58, 264, 20);
contentPane.add(textgewinner);
textgewinner.setColumns(10);
/*try {
Image img = ImageIO.read(getClass().getResource("/schnellesspiel/test.jpg"));
knopfstart.setIcon(new ImageIcon(img));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
*/
}
public class timer implements Runnable {
public void run() {
while (true) {
System.out.println("");
while (running2) {
try {
textspiel.setText("3");
Thread.sleep(1000);
textspiel.setText("2");
Thread.sleep(1000);
textspiel.setText("1");
Thread.sleep(1000);
textspiel.setText("");
Thread.sleep(1000);
running = true;
} catch (InterruptedException e) {
e.printStackTrace();
}
String[] RandomArray = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z" };
Random rdn = new Random();
for (int x = 0; x < 25; x++) {
int RandomArrayauswahl = rdn.nextInt(36);
dummy = 0;
texteingabe.setText("");
textspiel.setText(RandomArray[RandomArrayauswahl]);
while (dummy == 0) {
if (textspiel.getText().equalsIgnoreCase(texteingabe.getText())) {
dummy = 1;
if (x == 24) {
running = false;
running2 = false;
knopfstart.setVisible(true);
if (min <= min1 && sek <= sek1 && HS <= HS1) {
HS1 = HS;
sek1 = sek;
min1 = min;
String name = JOptionPane.showInputDialog(contentPane, "Name eingeben");
textgewinner.setText(name + " " + min + " : " + sek + " : " + HS);
HS = 0;
sek = 0;
min = 0;
h = 0;
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} else {
}
}
}
}
}
}
}
public class scanner implements Runnable {
public void run() {
while (true) {
if (textspiel.getText().equalsIgnoreCase(texteingabe.getText())) {
} else {
texteingabe.setText("");
}
}
}
}
class UhrzeitThread extends Thread {
public void run() {
while (true) {
System.out.println();
while (running) {
try {
Thread.sleep(9);
} catch (Exception e) {
}
if (HS <= 99) {
HS = HS + 1;
} else {
HS = 0;
if (sek <= 59) {
sek = sek + 1;
} else {
sek = 0;
if (min <= 59) {
min = min + 1;
} else {
min = 0;
h = h + 1;
}
}
}
textuhr.setText(min + " : " + sek + " : " + HS);
}
}
}
}
}