Teskstialue (JTextArea) ja Scrollaus (JScrollPane)

Koko: px
Aloita esitys sivulta:

Download "Teskstialue (JTextArea) ja Scrollaus (JScrollPane)"

Transkriptio

1 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

2 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

3 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

4 HELIA OHJELMOINTI ict1tn006 4 (32) Metodeita: void sethorizontalscrollbarpolicy(int policy) - lisää horisontaalipolittiikan void setverticalscrollbarpolicy(int policy - lisää vertikaalipolitiikan

5 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);

6 HELIA OHJELMOINTI ict1tn006 6 (32) tulostuu

7 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

8 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

9 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

10 HELIA OHJELMOINTI ict1tn (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);

11 HELIA OHJELMOINTI ict1tn (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); ;

12 HELIA OHJELMOINTI ict1tn (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);

13 HELIA OHJELMOINTI ict1tn (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ä ");

14 HELIA OHJELMOINTI ict1tn (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);

15 HELIA OHJELMOINTI ict1tn (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

16 HELIA OHJELMOINTI ict1tn (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)

17 HELIA OHJELMOINTI ict1tn (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ä") ;

18 HELIA OHJELMOINTI ict1tn (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);

19 HELIA OHJELMOINTI ict1tn (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

20 HELIA OHJELMOINTI ict1tn (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)

21 HELIA OHJELMOINTI ict1tn (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

22 HELIA OHJELMOINTI ict1tn (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);

23 HELIA OHJELMOINTI ict1tn (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());

24 HELIA OHJELMOINTI ict1tn (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 += "?";

25 HELIA OHJELMOINTI ict1tn (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);

26 HELIA OHJELMOINTI ict1tn (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);

27 HELIA OHJELMOINTI ict1tn (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

28 HELIA OHJELMOINTI ict1tn (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()

29 HELIA OHJELMOINTI ict1tn (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.

30 HELIA OHJELMOINTI ict1tn (32) Esimerkki public class FrValikko extends JFrame public FrValikko() settitle ("ValikkoRivi"); setsize(300, 200); setlocation(100,100); asettelekomponentit(); setdefaultcloseoperation(jframe.exit_on_close);

31 HELIA OHJELMOINTI ict1tn (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);

32 HELIA OHJELMOINTI ict1tn (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);

GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING

GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING GRAAFISEN KÄYTTÖLIITTYMÄN OHJELMOINTI JAVA SWING Käyttöliittymäkomponentteja Sovelluksen pääikkunan luominen Rinnakkainen toiminnallisuus Miten käyttöliittymä lopetetaan? Ikkunan peruskomponentit Mihin

Lisätiedot

Olio-ohjelmointi Käyttöliittymä

Olio-ohjelmointi Käyttöliittymä Olio-ohjelmointi 2016 Käyttöliittymä n Javalla on helppo toteuttaa yksinkertainen graafinen käyttöliittymä n AWT/Swing n JFC (Java Foundation Collection) n AWT-sisältää Javan grafiikka GUI-komponmentit

Lisätiedot

JAVA-OHJELMOINTI 3 op A274615

JAVA-OHJELMOINTI 3 op A274615 JAVA-OHJELMOINTI 3 op A274615 JFC & Swing, Look & Feel, Events Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Graafinen käyttöliittymä, osa 2

Graafinen käyttöliittymä, osa 2 Graafinen käyttöliittymä, osa 2 Tapahtumankäsittely, käyttöliittymäkomponentteja MVC-malli M Malli V Näkymä Päivitys C Ohjain Päivitys Tapahtumat MVC-malli jakaa sovelluksen malli- ja näkymäkerroksiin.

Lisätiedot

Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007

Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007 Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007 JTable Datan esittäminen taulukkomuodossa Datan valitseminen taulukosta Datan muokkaaminen (lisääminen, muokkaaminen, poistaminen)

Lisätiedot

Java ja grafiikka. Ville Sundberg 12.12.2007

Java ja grafiikka. Ville Sundberg 12.12.2007 Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen perusteet käyttäen Javan Swing-tekniikkaa

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Osio 4: Graafinen käyttöliittymä Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen

Lisätiedot

Graafinen käyttöliittymä, osa 3

Graafinen käyttöliittymä, osa 3 Graafinen käyttöliittymä, osa 3 Hiiritapahtumat, valikot, Look and Feel Taustaa: painikkeen käsittely Painikkeen tapahtumalähde on JButton-komponentti. Tapahtuma synnyttää aina tapahtumaolion. painikkeelle

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (assosiation) YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde

Lisätiedot

Java Swing. Juha Järvensivu 2007

Java Swing. Juha Järvensivu 2007 Java Swing Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Java ympäristöt Java kirjastot Java Foundation Classes (JFC) Hello Java Swing-kirjasto Grafiikan piirto Tapahtumankäsittely Java ympäristö

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

Java Swing. Juha Järvensivu 2008

Java Swing. Juha Järvensivu 2008 Java Swing Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys Java ympäristöt Java kirjastot Java Foundation Classes (JFC) Hello Java Swing-kirjasto Grafiikan piirto Tapahtumankäsittely Java ympäristö

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Tehtävä: Kasvukausi_1 Kun puutarha nyt näyttää oikealta, sitä olisi hyvä alkaa ohjelmoida toimivaksi. Tehdään aluksi istutukselle kuuntelija, jotta sitä klikkaamalla multaan voi

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Ikkunointijärjestelmät

Ikkunointijärjestelmät Ikkunointijärjestelmät Johdanto X-ikkunointijärjestelmä Java Yhteenveto Petri Vuorimaa 1 Tehtävät Piirtorutiinit Syöttölaitteiden monitorointi Tapahtumien välitys Ikkunoiden manipulointi Petri Vuorimaa

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen perusteet käyttäen Javan Swing-tekniikkaa

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Tavoite: Opiskelija tuntee käyttöliittymän suunnittelun perusteita Opiskelija tuntee Javan Swing-tekniikan perusteet Opiskelija osaa työasemakäyttöliittymän toteutuksen perusteet käyttäen Javan Swing-tekniikkaa

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Graafisen käyttöliittymän ohjelmointi

Graafisen käyttöliittymän ohjelmointi TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden

Lisätiedot

public static void main (String [] args)

public static void main (String [] args) HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,

Lisätiedot

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Luokan muodostimet (Constructors)

Luokan muodostimet (Constructors) Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Tietorakenteet, laskuharjoitus 7,

Tietorakenteet, laskuharjoitus 7, Tietorakenteet, laskuharjoitus 7, 14.-19.3. 1. "Tira meets software engineering, osa 1" Lue luentomonisteen kalvot 233-236. Toteuta luokka Opiskelijarekisteri joka tarjoaa seuraavat palvelut: opiskelijoiden

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Luento 5. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

Luento 5. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä Luento 5 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Patterns & AWT/Swing Observer-pattern

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Lista luokan sisällä

Lista luokan sisällä Lista luokan sisällä Luokan sisällä on lista Joukkue-luokka, joka sisältää listän joukkueen pelaajista Pelaaja Joukkueen metodit, jotka käyttävät listaa Ohjelmaluokka Luokan sisällä on lista Tarkoitta

Lisätiedot

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen Yksikkötestaus Kattava testaus Moduulitestaus Ohjelman testaus 1 Kattava testaus Testauksen perimmäinen tarkoitus on LÖYTÄÄ VIRHEITÄ Testaus pitäisi olla täydellinen: - Jokainen pyydetty arvo pitäisi testata

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Graafisen ikkunan luonti Aiemmin ohjelmoimme luokat ja metodit itse. Graafisia ohjelmia tehdessä kaikkea ei kannata tehdä itse, osan voi ottaa valmiina. Näitä valmishahmoja, eli

Lisätiedot

Luokat ja oliot. Ville Sundberg

Luokat ja oliot. Ville Sundberg Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 18: Graaset käyttöliittymät Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 3. 3. 2011 Sisältö 1 Graasten käyttöliittymien oliomalli 2

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin perusteet, kurssikoe Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Tietokantarakenteet, k2011 Niemistö, Jesse; m0703165 Viitanen, Lauri; 0803739. Drinkkitietokanta

Tietokantarakenteet, k2011 Niemistö, Jesse; m0703165 Viitanen, Lauri; 0803739. Drinkkitietokanta Tietokantarakenteet, k2011 Niemistö, Jesse; m0703165 Viitanen, Lauri; 0803739 Drinkkitietokanta _' _ =. ' o. o o @. o _o_._'_ / \ o_. '\~~~~~/ =1 \~~~~~/ '-.-' =9 '-.-' -9 _ _ _9_ _ _ `"""` _._ `"""` `"""`

Lisätiedot

Harjoitustyö (TKO_2023)

Harjoitustyö (TKO_2023) Harjoitustyö (TKO_2023) Jyri Lehtonen (72039) (alkuperäinen 29.1.2008) päivitetty: 8.2.2008 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee Java-appletti, joka kysyy käyttäjältä asioita Java-kielestä.

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Alkuehdot. Motivointi (1/2) Ohjelmointi II, kevät 2004 Kuopion yliopisto. Motivointi (2/2) (C) Mauno Rönkkö. Mitä tekee kutsupieninalkio(t, 10)?

Alkuehdot. Motivointi (1/2) Ohjelmointi II, kevät 2004 Kuopion yliopisto. Motivointi (2/2) (C) Mauno Rönkkö. Mitä tekee kutsupieninalkio(t, 10)? Ohjelmointi II, kevät 2004 Kuopion yliopisto (C) Mauno Rönkkö (Kalvot tarkoitettu itseopiskelun tueksi. Muu käyttö kielletty ilman lupaa.) Motivointi (1/2) int pieninalkio (int[] t, int l) //palauttaa

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Asettelu Tähän mennessä olemme luoneet ikkunan, johon voi laittaa yhden komponentin, kuten nappulan. Yksi komponentti harvoin riittää. Useampaa komponenttia lisäillessä meidän

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN MÄÄRITTELY KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter Olio-ohjelmointi Suunnittelumallit Adapter ja Composite Rakennemalleissa päähuomio kohdistetaan siihen, miten luokkia ja olioita yhdistellään muodostamaan laajempia rakenteita. Rakenteelliset luokkamallit

Lisätiedot

Eclipse & WindowBuilder

Eclipse & WindowBuilder Eclipse & WindowBuilder Yleistä asiaa WindowBuilder on Eclipsessä oleva työkalu, jolla voi graafisesti tehdä käyttöliittymiä. Käyttö perustuu siihen, ettei varsinaista ohjelmakoodia tarvitse itse tehdä,

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Rinnakkaisohjelmointi, Syksy 2006

Rinnakkaisohjelmointi, Syksy 2006 Rinnakkaisohjelmointi, Syksy 2006 17.12.2006 Opintopiiri WTF Mika Holmström Paula Kemppi Janne Piippo Lasse Lukkari Javan semaforit 1. Menetelmän käyttötarkoitus ja sovellusalue Semaforin idea kehitettiin

Lisätiedot