HELIA OHJELMOINTI ict1tn006 1 (32) Viikon 14 materiaalia Teskstialue (JTextArea) ja Scrollaus (JScrollPane) JTextArea on tekstialue, jossa on useita rivejä Muodostimia: public JTextArea(int rows, int columns) public JTextArea(String text) public JTextArea(String text, int rows, int columns) Metodeja: public void settext(string stg) metodin avulla viedään alueelle uusi sisältö esim. tateksti2.settext("i rivi\nii rivi\niii rivi\n"); alueen uusi sisältö: I rivi II rivi III rivi esim. tateksti2.settext(""); koko alue tyhjenee
HELIA OHJELMOINTI ict1tn006 2 (32) public void append (String str) metodin avulla viedään alueen loppuun uutta tekstiä esim. tateksti1.append ("Lisää tekstiä "); tateksti1.append ("append-metodilla. "); alueen loppuun tulee teksti: Lisää teksti append-metodille public void setlinewrap (boolean paalla) tehdäänkö rivinvaihdot itse vai käyttäjä oletus false, eli käyttäjä tekee itse rivinvaihdot true, komponentti tekee rivinvaihdot itse
HELIA OHJELMOINTI ict1tn006 3 (32) JScrollPane tekee rollauksen mahdolliseksi Muodostimia: public JScrollPane(Component view) - parametrina annetaan komponentti, johon rollaus tulee - esim. private JTextArea tateksti1 = new JTextArea ("1. rivi\n2. rivi\n", 5, 15); private JScrollPane scrollaus1 = new JScrollPane (tateksti1); public JScrollPane(Component view,int vpolicy, int hpolicy) - parametrina annetaan komponentin lisäksi vertikaali- ja horisontaalipolitiikka: o HORIZONTAL_SCROLLBAR_AS_NEEDED o HORIZONTAL_SCROLLBAR_NEVER o HORIZONTAL_ SCROLLBAR_ALWAYS o VERTICAL_SCROLLBAR_AS_NEEDED o VERTICAL_SCROLLBAR_NEVER o VERTICAL_SCROLLBAR_ALWAYS - esim private JScrollPane scrollaus1 = new JScrollPane( tateksti1, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); public JScrollPane(int vsbpolicy, int hsbpolicy) - parametrina annetaan vertikaali- ja horisontaalipolitiikka
HELIA OHJELMOINTI ict1tn006 4 (32) Metodeita: void sethorizontalscrollbarpolicy(int policy) - lisää horisontaalipolittiikan void setverticalscrollbarpolicy(int policy - lisää vertikaalipolitiikan
HELIA OHJELMOINTI ict1tn006 5 (32) public class FrTextArea extends JFrame public FrTextArea() setsize(400,200); setlocation(100,100); settitle("testialueet"); asettelekomponentit(); setdefaultcloseoperation(jframe.exit_on_close); private void asettelekomponentit() scrollaus1.sethorizontalscrollbarpolicy (JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollaus1.setverticalscrollbarpolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); // automaattinen rivinvaihto päälle tateksti1.setlinewrap(true); setlayout (new FlowLayout()); add (scrollaus1); add (scrollaus2); add(tateksti3); tateksti1.append ("Lisää tekstiä "); tateksti1.append ("append-metodilla. "); tateksti1.append ("Rivinvaihto tapahtuu automaattisesti."); tateksti2.append("4. rivi\n 5. rivi\n Sitten kovasti + tekstiä ilman rivinvaihtoja"); // käyttöliittymäkomponentit private JTextArea tateksti1 = new JTextArea ("1. rivi\n2. rivi\n", 5, 15); private JTextArea tateksti2 = new JTextArea ("1. rivi\n2. rivi\n3. rivi\n", 5, 15); private JTextArea tateksti3 = new JTextArea(); // määritellään rollaukset, joihin liitetään tekstialueet private JScrollPane scrollaus1 = new JScrollPane(taTeksti1); private JScrollPane scrollaus2 = new JScrollPane(taTeksti2);
HELIA OHJELMOINTI ict1tn006 6 (32) tulostuu
HELIA OHJELMOINTI ict1tn006 7 (32) Luettelo (JList) Luettelokomponentilla voidaan esittää ja selata luetteloita. JList-komponentin oletusmääreisiin kuuluu monivalinta, eli käyttäjä voi valita kerrallaan useita listan rivejä. JList-komponenttiin ei kuuluu automaattisesti vierityspalkit, mutta ne voidaan sinne lisätä JList-luokka periytyy SWING:n JComponent-luokasta. Object Component Container JList JComponent ListModel getmodel() int getselectedindex () int [] getselectedindecies () Object getselectedvalue() Object[] getselectedvalues() void setmodel(listmodel) void setselectedindex(int i) void setselectedindecies(int [] i) void setselectionmodel (ListSelectionModel model) requestfocus setbackground setborder setenabled setfont setvisible
HELIA OHJELMOINTI ict1tn006 8 (32) Muodostimia: JList () muodostin, tyhjä, lukukelponen (read-only) lista JList (ListModel model) muodostin, listaan tulostuu parametrin sisältö JList (Object [] taulu) muodostin, listaan tulostuu parametrin sisältö JList (Vector<?> data) muodostin, listaan tulostuu parametrin sisältö Metodeita: ListModel getmodel() palauttaa arvonaan ListModel-olion int getselectedindex() palauttaa arvonaan valitun rivin indeksin int[] getselectedindecies()palauttaa arvonaan valittujen rivin indeksit Object getselectedvalue() palauttaa arvonaan valitun olion Object[] getselectedvalues()palauttaa arvonaan valitut oliot void setmodel(listmodel) vie listan sisällöksi ListModel void setselectedindex(int i) valitsee listasta rivin i void setselectedindecies(int [] i) valitsee listasta rivit i[] void setselectionmodel(listselectionmodel model) yksivalinta/monivalinta
HELIA OHJELMOINTI ict1tn006 9 (32) Kun käytetään ns. dynaamista listaa (joka muuttuu ohjelman suorituksen aikana) JList-olio käyttää DefaultListModel-oliota Oliot luodaan seuraavasti: private DefaultLitsModel model=new DefaultListModel(); private JList jlkielet = new JList(model); Tai oliot voidaan luoda seuraavasti: private DefaultLitsModel model=new DefaultListModel(); private JList lskielet = new JList(); ja myöhemmin asettaa sisältö: lskielet.setmodel(model); DefaultListModel-olion metodeita: void add(int ind, Object ob) void addelement(object ob) void clear() Object get(int index) boolean removeelement (Object ob) void removeelementat(int ind) Lisää parametrin ob listan kohtaan index Lisää parametrin ob listan loppuun Tyhjentää listan. Palauttaa arvonaan olion kohdassa index Poistaa listasta olion ob. Poistaa olion kohdasta index
HELIA OHJELMOINTI ict1tn006 10 (32) Esim. Luettelo esimerkki public class FrJLista extends JFrame public FrJLista() settitle("jlist esimerkki"); setsize(250, 200); setlocation(100, 100); asettelekomponentit(); setdefaultcloseoperation(jframe.exit_on_close); public void asettelekomponentit() Container sisalto = this.getcontentpane(); sisalto.setlayout(null); // vain yhden rivin valinta lslista.setselectionmode (ListSelectionModel.SINGLE_SELECTION); sisalto.add(lbrivi); sisalto.add(tfrivi); sisalto.add(lslista); sisalto.add(btlisaa); sisalto.add(btpoista); // x, y, leveys, korkeus lbrivi.setbounds(10, 10, 70, 25); tfrivi.setbounds(85, 10, 150, 25); lslista.setbounds(85, 40, 150, 70); btlisaa.setbounds(85, 120, 70, 25); btpoista.setbounds(160, 120, 70, 25);
HELIA OHJELMOINTI ict1tn006 11 (32) // tapahtumakuuntelijat painikkeisiin btlisaa.addactionlistener(new AlsLisaa()); btpoista.addactionlistener(new AlsPoista()); // lisää listaan ns. hiirikuuntelija lslista.addmouselistener(new MlsLista()); // laita painike Poista pois päältä btpoista.setenabled(false); private class AlsLisaa implements ActionListener public void actionperformed(actionevent e) String rivi = tfrivi.gettext(); if (rivi.trim().length() > 0) model.addelement(rivi.trim()); tfrivi.settext(""); private class AlsPoista implements ActionListener public void actionperformed(actionevent e) String rivi = (String) lslista.getselectedvalue(); if (rivi!= null) model.removeelement(rivi); btpoista.setenabled(false); // Kun käyttäjä valitsee JList-komonentista rivin, // tama aktivoituu, eli laitetaan POista-nappula päälle private class MlsLista extends MouseAdapter public void mouseclicked(mouseevent e) btpoista.setenabled(true); ;
HELIA OHJELMOINTI ict1tn006 12 (32) private JTextField tfrivi = new JTextField(20); private JLabel lbrivi = new JLabel("Kirjoita rivi"); private JButton btlisaa = new JButton("Lisaa"); private JButton btpoista = new JButton("Poista"); private DefaultListModel model = new DefaultListModel(); private JList lslista = new JList(model); public static void main(string[] s) FrJLista fr = new FrJLista(); fr.setvisible(true); II Esimerkki public class FrLuetteloEsimerkki extends JFrame public FrLuetteloEsimerkki() settitle ("Luetteloesimerkki"); setsize(250, 250); setlocation (100, 100); asettelekomponentit(); setdefaultcloseoperation(jframe.exit_on_close);
HELIA OHJELMOINTI ict1tn006 13 (32) private void asettelekomponentit() Container sisalto = this.getcontentpane(); sisalto.setlayout (null); // lisää listaan tulostuvat rivit // DefaultListModel-olioon model.addelement("assembler"); model.addelement("c++"); model.addelement("cobol"); model.addelement("java"); model.addelement("visual Basic"); lskielet.setselectionmode (ListSelectionModel.SINGLE_SELECTION); sisalto.add (lbkielet); sisalto. add (scrollaus); sisalto. add(btannapisteet); sisalto. add(lbpisteet); lbkielet.setbounds(20,10,150,25); scrollaus.setbounds(20,40,100,80); btannapisteet.setbounds(125,60,120,25); lbpisteet.setbounds(20,115,100,25); btannapisteet.addactionlistener (new AlsAnnaPisteet()); class AlsAnnaPisteet implements ActionListener public void actionperformed (ActionEvent e) String valittu = (String)lsKielet.getSelectedValue(); if (valittu.equals ("Java")) lbpisteet.settext ("Sait 10 pistettä "); else lbpisteet.settext ("Sait 3 pistettä ");
HELIA OHJELMOINTI ict1tn006 14 (32) // KÄYTTÖLIITTYMÄKOMPONENTIT private JLabel lbkielet = new JLabel ("Mikä on suosikkisi? "); private JLabel lbpisteet = new JLabel (" "); private JButton btannapisteet = new JButton ("Anna Pisteet"); // dynaaminen lista määritellään näin: private DefaultListModel model = new DefaultListModel(); private JList lskielet = new JList (model); //laitetaan listaaan vierityspalkit private JScrollPane scrollaus = new JScrollPane(lsKielet); public static void main(string[] args) FrLuetteloEsimerkki fr = new FrLuetteloEsimerkki(); fr.setvisible(true);
HELIA OHJELMOINTI ict1tn006 15 (32) Valintalista (JComboBox) Valintalistasta käyttäjä voi valita yhden vaihtoehdon. Valintalista vie tilaa näytöllä vain valitun vaihtoehdon verran. JComboBox-luokka periytyy SWING:n JComponent-luokasta. Object Component Container JComboBox JComponent void additem(object ob) Object getitemat(int i) int getselectedindex() Object getselecteditem() Object[] getselectedobjects() void removeallitems() void removeitem(object ob) void removeitemat(int i) void setselectedindex(int i) void setselecteditem(object ob) requestfocus setbackground setborder setenabled setfont setvisible
HELIA OHJELMOINTI ict1tn006 16 (32) Seuraavassa on joitakin keskeisiä JComboBox-luokan metodeja: Esimerkki JComboBox () muodostin, tyhjä valintalista JComboBox (Object [] taulu) muodostin, valintalista, johon tulostuu parametrin taulu void additem(object ob) lisää rivin (Object ob) valintalistan loppuun Object getitemat(int i) palauttaa listan rivin kohdassa i int getselectedindex() palauttaa valitun rivin indeksin Object getselecteditem() palauttaa valitun rivin Object[] getselectedobjects() palauttaa valitut rivit void removeallitems() poistaa listasta kaikki void removeitem(object ob) poistaa listasta rivin ob void removeitemat(int i) poistaa listasta rivin kohdasta i void setselectedindex(int i) valitsee rivin kohdassa i void setselecteditem(object ob)valitsee rivin (Object ob)
HELIA OHJELMOINTI ict1tn006 17 (32) public class FrValinta extends JFrame public FrValinta () settitle ("JComboBox-esimerkki") ; setsize (250, 150) ; setlocation (100, 100) ; asettelekomponentit () ; setdefaultcloseoperation(jframe.exit_on_close); private void asettelekomponentit () Container sisalto = this.getcontentpane(); sisalto.setlayout (new FlowLayout (FlowLayout.LEFT)) ; cmkielet.additem ("Assembler") ; cmkielet.additem ("Java") ; cmkielet.additem ("C++") ; sisalto.add (lbkielet) ; sisalto.add (cmkielet) ; sisalto.add (btannapisteet) ; sisalto.add (lbpisteet) ; btannapisteet.addactionlistener(new AlsAnnaPisteet ()) ; class AlsAnnaPisteet implements ActionListener public void actionperformed (ActionEvent e) String valittu = (String)cmKielet.getSelectedItem(); if (valittu.equals ("Java")) lbpisteet.settext ("Sait 10 pistettä") ; else if (valittu.equals ("C++")) lbpisteet.settext ("Sait 9 pistettä") ; else lbpisteet.settext ("Sait 3 pistettä") ;
HELIA OHJELMOINTI ict1tn006 18 (32) // KÄYTTÖLIITTYMÄKOMPONENTIT private JLabel lbkielet= new JLabel ("Mikä on suosikkisi?") ; private JLabel lbpisteet = new JLabel (" "); private JComboBox cmkielet = new JComboBox () ; private JButton btannapisteet = new JButton ("Anna pisteet" ) ; public static void main(string[] args) FrValinta fr = new FrValinta(); fr.setvisible(true);
HELIA OHJELMOINTI ict1tn006 19 (32) Valintaruutu, JRadioButton ja JCheckBox Valintaruudut toteutetaan joko JRadioButton tai JCheckBoxkomponenttien avulla. Valintaruutu JRadioButton voidaan toteuttaa siten, että vain yksi vaihtoehdoista on valittavissa. Tällöin käytetään ButtonGroupluokkaa. ButtonGroup-luokan metodeja: void clearselection() poista valinta ButtonModel getselection() palauttaa tiedon, mikä ryhmästä on valittu boolean isselected(buttonmodel bm) palauttaa tiedon, onko parametri valittu ButtonModel-rajapinnan metodeja: String getactioncommand() palauttaa oliolle asetetun ActionCommandin nimen
HELIA OHJELMOINTI ict1tn006 20 (32) JComponent requestfocus setbackground setborder setenabled setfont setvisible AbstractButton void additemlistener(itemlistener i) void setactioncommand(string com) String gettext() void settext(string st) boolean isselected() void setselected (Boolean b) JToggleButton JRadioButton JRadioButton() JRadioButton(String st) JRadioButton (String st, boolean sel) JCheckBox JChechBox() JCheckBox(String st) JCheckBox (String st, boolean sel)
HELIA OHJELMOINTI ict1tn006 21 (32) AbstractButton-luokan metodeja: void additemlistener(itemlistener i) asetetaan tapahtumakuuntelija void setactioncommand(string com) asetetaan oliolle ActionCommandin nimi String gettext() palauttaa olion tekstin void settext(string st) boolean isselected() viedään oliolle teksti onko olio valittu (true) vai ei (false) void setselected (boolean b) valitse olio JRadioButton-luokan muodostimia: JRadioButton() oletusmuodostin JRadioButton(String st) param.muodostin, jossa olio saa tekstin JRadioButton(String st, boolean sel) param.muodostin, jossa olio saa tekstin ja se valitaan JCheckBox-luokan muodostimia: JCheckBox() oletusmuodostin JCheckBox (String st) param.muodostin, jossa olio saa tekstin JCheckBox (String st, boolean sel) param.muodostin, jossa olio saa tekstin ja se valitaan
HELIA OHJELMOINTI ict1tn006 22 (32) esim. public class FrValinnat extends JFrame public FrValinnat() setsize(300,330); settitle("jcheckbox ja JRadioButton"); setlocation(100,100); setdefaultcloseoperation(jframe.exit_on_close); asettelekomponentit(); private void asettelekomponentit() Container sisalto = this.getcontentpane(); sisalto.setlayout(null); //lisää JRadioButtonit ButtonGroupiin bgsukupuoli.add(rbmies); bgsukupuoli.add(rbnainen);
HELIA OHJELMOINTI ict1tn006 23 (32) sisalto.add(lbnimi); sisalto.add(tfnimi); sisalto.add(lbsukupuoli); sisalto.add(rbmies); sisalto.add(rbnainen); sisalto.add(lbkielet); sisalto.add(cbruotsi); sisalto.add(cbsuomi); sisalto.add(cbmuu); sisalto.add(lbmika); sisalto.add(tfmika); sisalto.add(btyhteenveto); sisalto.add(btlopeta); // x,y, leveys, korkeus lbnimi.setbounds(20,20,100, 20); tfnimi.setbounds(130,20, 100,20); lbsukupuoli.setbounds(20,60, 100, 25); rbnainen.setbounds(130, 60,70,25); rbmies.setbounds(130, 90, 70, 25); lbkielet.setbounds(20, 120, 150,25); cbruotsi.setbounds(50, 150, 130, 25); cbsuomi.setbounds(50, 180, 130, 25); cbmuu.setbounds(50, 210, 70, 25); lbmika.setbounds(140,210, 50, 25); tfmika.setbounds(195, 210, 70, 25); btyhteenveto.setbounds(20, 250, 100, 25); btlopeta.setbounds(130, 250, 100, 25); // toistaiseksi näkymätön muu kieli lbmika.setvisible(false); tfmika.setvisible(false); // vie JRadioButtonien ActionCommand:lle nimet rbnainen.setactioncommand("nainen"); rbmies.setactioncommand("mies"); btyhteenveto.addactionlistener(new AlsYhteenveto()); btlopeta.addactionlistener(new AlsLopeta()); // kuuntelija JCheckBoxiin cbmuu.additemlistener(new IlsMuu());
HELIA OHJELMOINTI ict1tn006 24 (32) private class AlsYhteenveto implements ActionListener public void actionperformed(actionevent e) String teksti; String nimi; nimi=tfnimi.gettext().trim(); if (nimi.length()==0) JOptionPane.showMessageDialog (null, "Kirjoita nimi!", "Viesti", JOptionPane.INFORMATION_MESSAGE) ; else nimi = nimi.substring(0,1).touppercase() + nimi.substring(1).tolowercase(); teksti = "Nimesi: " + nimi; //kumman sukupuolen käyttäjä valitsi? ButtonModel sukupuoli; sukupuoli = bgsukupuoli.getselection(); teksti += ", " + sukupuoli.getactioncommand(); teksti += "\nkielitaitosi: "; // valitsiko käyttäjä JCheckBoxin cbruotsi? if (cbruotsi.isselected()) teksti += cbruotsi.gettext()+" ja "; // valitsiko käyttäjä JCheckBoxin cbsuomi? if (cbsuomi.isselected()) teksti += cbsuomi.gettext()+" ja "; // valitsiko käyttäjä JCheckBoxin cbmuu? if (cbmuu.isselected()) if (tfmika.gettext().trim().length() > 0) teksti += tfmika.gettext().trim(); else teksti += "?";
HELIA OHJELMOINTI ict1tn006 25 (32) else // otetaan viimeinen ja-sana pois tekstistä teksti = teksti.substring(0,teksti.length()-3); JOptionPane.showMessageDialog (null, teksti, "Viesti", JOptionPane.INFORMATION_MESSAGE); private class AlsLopeta implements ActionListener public void actionperformed(actionevent e) System.exit(0); // kun käyttäjä valitsee valintaruudun Muu // ==> tulevat näkyviin // JLabel lbmika ja JTextFiled tfmika private class IlsMuu implements ItemListener public void itemstatechanged(itemevent e) if (cbmuu.isselected())// onko cbmuu valittu? lbmika.setvisible(true); tfmika.setvisible(true); tfmika.settext(""); else // käyttäjä poisti cbmuu valinnan lbmika.setvisible(false); tfmika.setvisible(false);
HELIA OHJELMOINTI ict1tn006 26 (32) // käyttöliittymäkomponentit private JLabel lbnimi = new JLabel("Kirjoita nimi:"); private JTextField tfnimi = new JTextField(); private JLabel lbsukupuoli = new JLabel("Valitse sukupuoli:"); //Ryhmä private ButtonGroup bgsukupuoli = new ButtonGroup(); private JRadioButton rbmies = new JRadioButton("Mies"); private JRadioButton rbnainen = new JRadioButton("Nainen", true); private JLabel lbkielet = new JLabel("Valitse kielet, jotka taidat:"); private JCheckBox cbruotsi = new JCheckBox("ruotsi"); private JCheckBox cbsuomi = new JCheckBox("suomi"); private JCheckBox cbmuu = new JCheckBox("muu"); private JLabel lbmika = new JLabel("Mikä?"); private JTextField tfmika = new JTextField(); private JButton btyhteenveto = new JButton("Yhteenveto"); private JButton btlopeta = new JButton("Lopeta"); public static void main(string [] s) FrValinnat fr = new FrValinnat(); fr.setvisible(true);
HELIA OHJELMOINTI ict1tn006 27 (32) Valikko, JMenuBar, JMenu, JMenuItem Valikoiden avulla voidaan toteuttaa samat toimenpiteet kuin nappuloillakin (JButton). Valikoiden JMenuItem-olioihin voidaan liittää tapahtumakuuntelijoita (addactionlistener(actionlistener als)). JMenuBar JMenu separator JMenuItem
HELIA OHJELMOINTI ict1tn006 28 (32) JComponent requestfocus setbackground setborder setenabled setfont setvisible AbstractButton void additemlistener(itemlistener i) void setactioncommand(string com) String gettext() void settext(string st) boolean isselected() void setselected (Boolean b) void setmnemonic (int mnemonic) JMenuBar JMenuBar() JMenu add(jmenu mn) JMenuItem JMenuItem(String tx) JMenuItem(String tx, int mnemonic) JMenu JMenu (String tx) JMenuItem add(jmenuitem mi) void addseparator()
HELIA OHJELMOINTI ict1tn006 29 (32) JMenuBar-luokan muodostin ja metodeita: JMenuBar() JMenu add(jmenu mn) oletusmuodostin lisää JMenuBar-olioon JMenu-olion JMenu-luokan muodostimia ja metodeita: JMenu (Stringt tx) JMenuItem add(jmenuitem mi) void addseparator() param.muodostin, vie tekstin Jmenu-olioon lisää JMenuItem-olion JMenu-olioon lisää JMenu-olioon ns.separaattorin JMenuItem-luokan muodostimia: JMenuItem(String tx) param.muodostin, vie tekstin Jmenu-olioon JMenuItem(String tx, int mnemonic) param.muodostin, vie tekstin ja kirjaimen JMenuItem-olioon. Kirjaimen avulla JMenuItem voidaan valita.
HELIA OHJELMOINTI ict1tn006 30 (32) Esimerkki public class FrValikko extends JFrame public FrValikko() settitle ("ValikkoRivi"); setsize(300, 200); setlocation(100,100); asettelekomponentit(); setdefaultcloseoperation(jframe.exit_on_close);
HELIA OHJELMOINTI ict1tn006 31 (32) private void asettelekomponentit() // JFrame-olion metodi, vie JMenuBar ikkunaan setjmenubar (mbvalikko); // vie JMenuBariin JMenut mbvalikko.add (mntosite); mbvalikko.add(mnohje); // vie JMenuun mntosite JMenuItemit ja separator mntosite.add(miuusi); mntosite.add(miavaa); mntosite.addseparator(); mntosite.add(milopeta); // vie JMenuun mnohje JMenuItemit mnohje.add(mietsi); mnohje.add(mitietoja); // menu ja menuitem alkukirjaimen alleviivaus mntosite.setmnemonic('t'); mnohje.setmnemonic('o'); miuusi.setmnemonic('u'); miavaa.setmnemonic('a'); milopeta.setmnemonic('l'); milopeta.addactionlistener (new AlsLopeta()); miuusi.addactionlistener (new AlsUusi()); miavaa.addactionlistener( new AlsAvaa()); class AlsUusi implements ActionListener public void actionperformed (ActionEvent e) JOptionPane.showMessageDialog ( null, "Valitsit Uusi valinnan", "ILMOITUS", JOptionPane.INFORMATION_MESSAGE);
HELIA OHJELMOINTI ict1tn006 32 (32) class AlsAvaa implements ActionListener public void actionperformed (ActionEvent e) JOptionPane.showMessageDialog ( null, "Valitsit Avaa valinnan", "ILMOITUS", JOptionPane.INFORMATION_MESSAGE); class AlsLopeta implements ActionListener public void actionperformed (ActionEvent e) System.exit(0); // kayttoliittymakomponentit private JMenuBar mbvalikko = new JMenuBar(); private JMenu mntosite = new JMenu ("Tosite"); private JMenu mnohje = new JMenu ("Ohje"); private JMenuItem miuusi = new JMenuItem ("Uusi"); private JMenuItem miavaa = new JMenuItem ("Avaa.."); private JMenuItem milopeta = new JMenuItem ("Lopeta"); private JMenuItem mietsi = new JMenuItem ("Etsi ohje aiheesta",'e'); private JMenuItem mitietoja = new JMenuItem ("Tietoja sovelluksesta",'s'); public static void main (String [] s) FrValikko olio = new FrValikko(); olio.setvisible(true);