<:> WhatDoYouCall applet
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class JokePanel extends JPanel {
String string;
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (string != null) g.drawString(string, 10, 20);
}
}
public class WhatDoYouCall extends JApplet implements MouseListener {
String answer = null;
int index = 0;
JokePanel jokePanel = new JokePanel();
String map[][] = {
{"tail", "pursuer", "wags"},
{"plane", "flat surface", "flies"},
{"motor", "power source", "vibrates"},
{"bike", "cycle", "has pedals"},
{"car", "vehicle", "has four doors"},
{"park", "nature reserve", "is open to the public"},
{"ice", "glacier", "freezes"},
{"box", "case", "you can keep things in"}
};
public void init() {
this.addMouseListener(this);
jokePanel.setBackground(Color.white);
getContentPane().add(jokePanel);
}
public void mousePressed(MouseEvent event) {
if (answer != null) {
jokePanel.string = "Answer: " + answer;
answer = null;
index += 2;
if (index >= map.length) index = (index+1) % map.length; }
else {
int i = index, j = i-1;
String thing = map[i][1], desc = null;
if (i % 2 == 0) j = i+1;
desc = map[j][2];
jokePanel.string = "Question: what do you call a " + thing + " that " + desc + "?";
answer = map[Math.min(i,j)][0] + map[Math.max(i,j)][0]; }
repaint();
}
public void mouseReleased(MouseEvent event) { }
public void mouseClicked(MouseEvent event) { }
public void mouseEntered(MouseEvent event) { }
public void mouseExited(MouseEvent event) { }
}