/* KlikkaaKuvaa.java hiiren tapahtumaan reagoiminen. Kuvien klikkaaminen aiheuttaa kuvan häipymisen näkyvistä, ja toisen kuvan ilmestymisen. Täten kuvat eivät lopu koskaan. Tekijä: Juha Peltomäki, 10.1998 */ import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class KlikkaaKuvaa extends Applet { // Kuvien koordinaatit private int k1[] = {20, 100, 50, 25}; private int k2[] = {120, 100, 50, 25}; private int k3[] = {70, 160, 50, 25}; private int vuoro = 1; public void init() { addMouseListener(new HiirenKasittelija()); } public void paint(Graphics g) { g.setColor(Color.blue); g.drawString("Klikkaa kuviota", 50, 10); g.drawString("ja tarkkaile tilariviä.", 50, 25); // Kolme vaihtoehtoista tilannetta if (vuoro == 1) piirra_suorakulmio1(g); else if (vuoro == 2) piirra_suorakulmio2(g); else if (vuoro == 3) piirra_suorakulmio3(g); } public void piirra_suorakulmio1(Graphics g) { g.setColor(Color.orange); g.fillRoundRect(k1[0], k1[1], k1[2], k1[3], 4, 4); g.setColor(Color.white); g.clearRect(k2[0], k2[1], k2[2], k2[3]); g.clearRect(k3[0], k3[1], k3[2], k3[3]); } public void piirra_suorakulmio2(Graphics g) { g.setColor(Color.red); g.fillRoundRect(k2[0], k2[1], k2[2], k2[3], 3, 3); g.clearRect(k3[0], k3[1], k3[2], k3[3]); g.clearRect(k1[0], k1[1], k1[2], k1[3]); g.setColor(Color.white); } public void piirra_suorakulmio3(Graphics g) { g.setColor(Color.yellow); g.fillRoundRect(k3[0], k3[1], k3[2], k3[3], 2, 2); g.clearRect(k2[0], k2[1], k2[2], k2[3]); g.clearRect(k1[0], k1[1], k1[2], k1[3]); g.setColor(Color.white); } // public void aseta_vuoro(int nro) { vuoro = nro; repaint(); } // Käsittelee SiirraKuvaa-luokassa tapahtuvia // hiiren liikkeitä. // class HiirenKasittelija extends MouseAdapter { private boolean onko_alueella(int x, int y, int k[]) { if ((x >= k[0] && x <= k[0] + k[2]) && (y >= k[1] && y <= k[1] + k[3])) return true; else return false; } public void mouseClicked(MouseEvent tapahtuma) { int x = tapahtuma.getX(); int y = tapahtuma.getY(); if (onko_alueella(x, y, k1) && vuoro == 1) { aseta_vuoro(2); } else if (onko_alueella(x, y, k2) && vuoro == 2) { aseta_vuoro(3); } else if (onko_alueella(x, y, k3) && vuoro == 3) { aseta_vuoro(1); } showStatus("Nappia klikattu!"); } public void mousePressed(MouseEvent tapahtuma) { showStatus("Nappi pohjassa!"); } public void mouseReleased(MouseEvent tapahtuma) { showStatus("Nappi vapautettu!"); } public void mouseEntered(MouseEvent tapahtuma) { showStatus("hiiri saapui appletille!"); } public void mouseExited(MouseEvent tapahtuma) { showStatus("hiiri lähti appletilta!"); } } }