import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.io.IOException;
public class TimeBomb extends JFrame implements ActionListener
{
public String inputString;
public String inputMask = "*";//mask
public String temp = "";
public static byte[] user, secret;
JTextField tfInput = new JTextField(2);
JLabel lblMessage = new JLabel("Guess A Letter: ");
JLabel maskedWord = new JLabel();
JLabel guessedLetter = new JLabel();
JButton btnOK = new JButton("OK");
JLabel timer = new JLabel("*-----");
//BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
public TimeBomb() //constructor for GUI
{
super("Time Bomb Game");
//secret word
inputString = JOptionPane.showInputDialog("Enter Secret Word: ");
// inputString = keyboard.readLine();
// System.out.println("Enter Secret Word: ");//enter secret word into console
// inputString = keyboard.readLine();//store secret word
for(int i = 0; i < inputString.length(); i++)//gets the length of the secret word
temp += inputMask;//creates a mask of the secret word of the appropriate length
maskedWord = new JLabel(temp);
byte[] secret = inputString.getBytes();//convert secret word String into byte array
// byte[] user = keyboard.readLine().getBytes();
//set font
Font f1 = new Font("Dialog", Font.PLAIN, 24);//set main font
Font f2 = new Font("Dialog", Font.PLAIN, 32);//set larger font
lblMessage.setFont(f1);
tfInput.setFont(f1);
guessedLetter.setFont(f1);
btnOK.setFont(f1);
timer.setFont(f2);
maskedWord.setFont(f1);
//gui properties
getContentPane().setLayout(new BorderLayout(1,1));
JPanel northPanel = new JPanel();
northPanel.add(lblMessage);
northPanel.add(tfInput);
northPanel.add(btnOK);
btnOK.addActionListener(this);
getContentPane().add(northPanel, "North");
JPanel centerPanel = new JPanel();
centerPanel.add(maskedWord);
centerPanel.add(guessedLetter);
getContentPane().add(centerPanel, "Center");
JPanel southPanel = new JPanel();
southPanel.add(timer);
getContentPane().add(southPanel, "South");
setSize(350, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private byte[] CompareSecret(byte[] secret, final byte[] user)
{
if (secret.length == user.length)
{
byte[] output = new byte[secret.length];
for (int i = 0; i < secret.length; i++)
{
if (secret[i] == user[i])
output[i] = secret[i];
else
output[i] = 42; // *
}
return output;
}
else
{
return null; // invalid
}
}
public void actionPerformed(ActionEvent e)
{
if ("OK".equals(e.getActionCommand()))//OK button gets entered letter and puts it in the south panel
{
guessedLetter.setText(tfInput.getText());
// txtDisplay.setText(new String(CompareSecret(secret, user)));
}
}
public static void main(String[] args)
{
TimeBomb x = new TimeBomb();
x.CompareSecret(secret, user);
}
}//end TimeBomb class