User Tools

Site Tools


resources_for_peek-a-boo

Peek-A-Boo

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
 
public class PeekABoo extends JPanel implements KeyListener, ActionListener
{
	public static int WIDTH=1200;
	public static int HEIGHT=600;
	private Font titleFont, bigFont;
	private int x,y;
	private Timer timer1, timer2;
	private char ch;
	private String message;
 
 
 
	public PeekABoo() 
	{
 
		//initialize variables here...
		titleFont = new Font("Roman", Font.BOLD, 18);
		bigFont = new Font("Helvetica", Font.PLAIN, 72);
 
		timer1 = new Timer(1000, this); //1000=1 seconds
		timer2 = new Timer(2000, this); //1000=1 seconds
		timer1.start();
		timer2.start();
		int r = (int)(26*Math.random());
		ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(r);
		message = "Next Character is "+ch;
 
	}
	public static void main(String[] args) {
		PeekABoo app= new PeekABoo();
		JFrame window = new JFrame("Timer Example");
		window.setSize(WIDTH, HEIGHT);
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		window.getContentPane().add(app);
		window.addKeyListener(app);
		//window.pack();
		window.setVisible(true);
 
	}
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		g.setColor(Color.WHITE);
		g.fillRect(0, 0, getWidth(),getHeight());
		g.setColor(Color.BLUE);
		g.setFont(titleFont);
		g.drawString("Peek A Boo", 20, 20);
		g.setColor(Color.BLACK);
		g.setFont(bigFont);
		g.drawString(message, 30, HEIGHT/2);
		g.fillRect(x, y, 10, 10);
 
	}
 
 
	// These 3 methods need to be declares to implement the KeyListener Interface
	@Override
	public void keyTyped(KeyEvent e) {}
 
	@Override
	public void keyPressed(KeyEvent e) {
		char guess = e.getKeyChar();
        String s = ""+guess;
        guess = s.toUpperCase().charAt(0);
		if (guess == ch) // right
			message="Thats right";
		else 
		{
			int r = (int)(26*Math.random());
			ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(r);
			message = "No, try Again.  The new Letter is "+ch;
			timer1.restart();
		}
		repaint();
	}
 
	@Override
	public void keyReleased(KeyEvent e) {}
	@Override
	public void actionPerformed(ActionEvent e) {
 
		if (e.getSource()==timer1){
			message = "Now type that Letter";
			timer1.stop();
			timer2.start();
		} else {
			timer2.stop();
			int r = (int)(26*Math.random());
			ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(r);
			message = "try Again.  The new Letter is "+ch;
			timer1.restart();;
		}
		repaint();
	}
 
}
resources_for_peek-a-boo.txt · Last modified: 2022/05/23 16:43 by frchris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki