/* Tekijä: Juha Peltomäki 5.1998 Esimerkki: Luku 4. Toiminta: Ohjelmassa esitellään erilaisien syöttöelementtien ryhmittelyä lomakkeelle. Lisäksi reagoidaan jokaiseen syöttöelementtiin kohdistuvaan tapahtumaan asianmukaisella metodilla. Käyttää Java 1.0:n tapahtumankäsittelymallia. */ import java.awt.*; import java.applet.*; public class Valinnat extends Applet { // Alustetaan graafisen kl:n komponentit. Choice ikavalikko = new Choice(); CheckboxGroup ryhma = new CheckboxGroup(); Label kysymys = new Label("Valitse ryhmäsi:"); Panel tyo_paneeli = new Panel(); Font arial_20 = new Font("Arial", Font.BOLD, 20); String viimeisin_valinta=""; // tieto viimeisimmästä valinnasta. // Alustetaan valikon tiedot. String iat[] = {"0-17", "18-40", "41-65", "66-120"}; String tyoryhma[] = {"Työntekijä", "Johtaja", "Opiskelija", "Työtön"}; /* Metodi alustaa ohjelman käyttöliittymän. */ public void init() { for (int i=0; i < iat.length; i++) ikavalikko.addItem(iat[i]); tyo_paneeli.setLayout(new GridLayout(2,1)); for (int i=0; i < tyoryhma.length; i++) tyo_paneeli.add(new Checkbox(tyoryhma[i], ryhma, false)); add(kysymys); add(ikavalikko); add(tyo_paneeli); } /* Metodi selvittää pudotusvalikon alkion indeksin avulla sen sisältämän merkkijonon. */ public void kasittele_valikko(Choice valinta) { viimeisin_valinta = valinta.getItem(valinta.getSelectedIndex()); } /* Metodi selvittää painitun radiopainikkeen sisältämän tekstin. */ public void kasittele_radiopainikkeet(Checkbox radiopainike) { viimeisin_valinta = radiopainike.getLabel(); } /* Metodi käsittelee ohjelman tapahtumat. */ public boolean action(Event tapahtuma, Object objekti) { if (tapahtuma.target instanceof Choice) kasittele_valikko((Choice)tapahtuma.target); else if (tapahtuma.target instanceof Checkbox) kasittele_radiopainikkeet((Checkbox)tapahtuma.target); repaint(); return true; } /* Metodi tulostaa viimeisimmän valinnan näytölle. */ public void paint(Graphics g) { g.setFont(arial_20); g.drawString("Viimeisin valinta: ", 30, 160); g.drawString(viimeisin_valinta, 30, 185); } }