/* VaihtoehtoTesti.java Esimerkissä kaksi kysymystä ja vaihtoehdot kahdella erilaisella komponentillä: a) Radiopainikkeet. (CheckBoxGroup-luokan oliot) b) Pudotusvalikko. (Choice-luokan oliot) Esimerkki Appletista, joka on muunnettu Swing-kirjastoa käyttäväksi ohjelmaksi. Tekijä: Juha Peltomäki, 11.1999. */ package fi.teknolit.swingmuunnos; import java.awt.*; // lisäys -> kirjastot swing:n käyttämiseksi. import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; public class VaihtoehtoTesti extends JApplet { private JLabel kysymys1, kysymys2; // muunnos Checkbox -> JRadioButton private JRadioButton radio[] = new JRadioButton[4]; // muunnos CheckboxGroup -> ButtonGroup private ButtonGroup radionapit; // muunnos Choice -> JListi private JList valinnat; // muunnos Panel -> Jpanel. lisätään toinen kehys sijoittelemisen helpottamiseksi private JPanel kehys1, kehys2; // oikeat vastauksen sisältävä taulukko. private static final int oikea_vastaus[] = {2, 3}; // Alustetaan kysymyksen_arvot. private String kehittaja[] = {"Nokia", "IBM", "Sun", "Compaq"}; private String vuosiluku[] = {"1970", "1981", "1990", "1995"}; public void init() { setBackground(Color.lightGray); // Luodaan radiopainikeryhmä kysymyksineen. kysymys1 = new JLabel("Mikä yhtiö kehitti Javan?"); radionapit = new ButtonGroup(); for (int i=0; i lisätään ryhmään () radionapit.add(radio[i]); radio[i].addItemListener(new RadioKuuntelija()); } // Luodaan pudotusvalikkoryhmä kysymyksineen. kysymys2 = new JLabel("Milloin ilmestyi ensimmäinen Java-kehitin?"); // Muutos: JList-listan voi muodostaan merkkijonotaulukosta valinnat = new JList(vuosiluku); // muutos: lisätään näkyvien alkioiden lukumäärä ja montako // listasta voi valita valinnat.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); valinnat.setVisibleRowCount(4); // Muunnos: ItemListener -> ListSelectionListener valinnat.addListSelectionListener(new ListaKuuntelija()); // Sijoitetaan elementit paneeleihin kehys1 ja kehys2 kehys1 = new JPanel(); kehys1.setLayout(new GridLayout(5, 1)); kehys1.add(kysymys1); for (int i=0; i ListSelectionEvent class ListaKuuntelija implements ListSelectionListener { public void valueChanged(ListSelectionEvent tapahtuma) { // muunnos: getSelectedValue() palauttaa valitun arvon String valinta = (String)valinnat.getSelectedValue(); if (valinta.equals(new String(vuosiluku[oikea_vastaus[1]]))) showStatus("Valitsit oikean vastauksen (" + valinta + ")"); else showStatus("Valitsit väärän vastauksen! (" + valinta + ")"); } } }