a proposito dell’esame - unitrentolatemar.science.unitn.it/segue_userfiles/2019programma... ·...
TRANSCRIPT
![Page 1: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/1.jpg)
Apropositodell’esame…
![Page 2: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/2.jpg)
Esame-Materiale1aprova:- Orologio- Penne- Documento- N.Matricola2aprova:- Tuttoilmaterialecartaceochevolete–soloperusopersonale.
- APIinlocale,inNetbeans.JavaTutorials
![Page 3: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/3.jpg)
Esame-IscrizioneAssumetelevostreresponsabilità!
- Iscrizione (fino a 3 giorni prima)- Dis-iscrizione (fino a 24 ore prima, eventualmente via mail. Last minute – only for serious reasons-, via mail.)
Noexcuses.Noexceptions.
![Page 4: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/4.jpg)
Esame-IscrizioneAssumetelevostreresponsabilità!
- Chi, essendosi iscritto, non si presenta senza una ottima giustificazione salta l’appello successivo
Noexcuses.Noexceptions.
![Page 5: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/5.jpg)
Datedegliesami• Esse3,maanchesulsitodiquestocorso
![Page 6: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/6.jpg)
Netbeanstricks
![Page 7: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/7.jpg)
Alwaysfullyrecompile!(Javafx)
Format!
![Page 8: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/8.jpg)
Readthesuggestions!
Be careful with the imports!
![Page 9: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/9.jpg)
packagenames!
package it.unitn.disi.lingProg.ronchet
![Page 10: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/10.jpg)
History
![Page 11: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/11.jpg)
Esercizio
![Page 12: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/12.jpg)
Esercizio1• Scrivereunaapplicazionechemostra9bottoni
numeratida0a8.Premendountastonumericosullatastiera,ilbottonerelativodeveessererimosso,mentreglialtridevonorestarealloroposto
• (ovviamentenondevonoesseregeneratierroripremendopiùvoltelostessotasto,opremendotastinonnumerici)
![Page 13: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/13.jpg)
package it.unitn.disi.lingProg.ronchet import… public class AggiungiTogli extends Application { Button[] btn; final int NBUTTONS = 9; @Override public void start(Stage primaryStage) { // CREA BOTTONI // CREA PANNELLO (root) // GESTISCI GLI EVENTI // CREA SCENA // MOSTRA STAGE } public static void main(String[] args) { Application.launch(args); } private Button createButton(int i) {…} }
btn=newButton[NBUTTONS];for(inti=0;i<NBUTTONS;i++){btn[i]=createButton(i);}//AGGIUNGEREILMETODO//createButton
Scenescene=newScene(root);primaryStage.setTitle("Togliunoallavolta!");primaryStage.setScene(scene);primaryStage.show();
privateButtoncreateButton(inti){Stringtext=""+i;Buttonbtn=newButton(text);btn.setPrefWidth(200);btn.setPrefHeight(200);returnbtn;}
![Page 14: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/14.jpg)
// CREA PANNELLO (root) // GESTISCI GLI EVENTI final Pane root = new TilePane(); root.setPrefTileWidth(100); root.setPrefTileHeight(100); root.setPrefColumns(3); root.getChildren().addAll(btn); root.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key = keyEvent.getCharacter(); int i = Integer.parseInt(key); System.out.println(i); boolean retval = root.getChildren().remove(btn[i]); } });
![Page 15: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/15.jpg)
// CREA PANNELLO (root) // GESTISCI GLI EVENTI final Pane root = new TilePane(); root.setPrefTileWidth(100); root.setPrefTileHeight(100); root.setPrefColumns(3); root.getChildren().addAll(btn); root.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key = keyEvent.getCharacter();
// ATTENTIONPOINT 1 if (!("012345678".contains(key))) { keyEvent.consume();
return; }
int i = Integer.parseInt(key); System.out.println(i); boolean retval = root.getChildren().remove(btn[i]); } });
![Page 16: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/16.jpg)
// CREA PANNELLO (root) // GESTISCI GLI EVENTI final Pane root = new TilePane(); root.setPrefTileWidth(100); root.setPrefTileHeight(100); root.setPrefColumns(3); root.getChildren().addAll(btn); root.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key = keyEvent.getCharacter();
// ATTENTIONPOINT 1 if (!("012345678".contains(key))) { keyEvent.consume();
return; }
int i = Integer.parseInt(key); System.out.println(i); boolean retval = root.getChildren().remove(btn[i]); } });
![Page 17: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/17.jpg)
// CREA PANNELLO (root) // GESTISCI GLI EVENTI final Pane root = new TilePane(); root.setPrefTileWidth(100); root.setPrefTileHeight(100); root.setPrefColumns(3); root.getChildren().addAll(btn); root.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key = keyEvent.getCharacter();
// ATTENTIONPOINT 1 if (!("012345678".contains(key))) { keyEvent.consume();
return; } int i = Integer.parseInt(key);
System.out.println(i); // ATTENTIONPOINT 2 - A root.getChildren().remove(btn[i]); root.getChildren().add(i, new Pane()); } });
![Page 18: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/18.jpg)
// CREA PANNELLO (root) // GESTISCI GLI EVENTI final Pane root = new TilePane(); root.setPrefTileWidth(100); root.setPrefTileHeight(100); root.setPrefColumns(3); root.getChildren().addAll(btn); root.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key = keyEvent.getCharacter(); // ATTENTIONPOINT 1 if (!("012345678".contains(key))) { keyEvent.consume();
return; }
int i = Integer.parseInt(key); System.out.println(i); // ATTENTIONPOINT 2 - B boolean retval = root.getChildren().remove(btn[i]); System.out.println(retval); if (retval) { root.getChildren().add(i, new Pane()); } } });
![Page 19: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/19.jpg)
Ristrutturiamoilcodice:componentipersonalizzate
class MyButton extends Button { MyButton(int i) { super("" + i); String text = "" + i; setPrefWidth(200); setPrefHeight(200); } }
![Page 20: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/20.jpg)
Ristrutturiamoilcodiceclass MyPane extends TilePane { MyPane() { setPrefTileWidth(100); setPrefTileHeight(100); setPrefColumns(3); addEventHandler(KeyEvent.KEY_TYPED, new
EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key=keyEvent.getCharacter(); if (!("012345678".contains(key))) { keyEvent.consume();
return; }
int i = Integer.parseInt(key); boolean retval = getChildren().remove(btn[i]); if (retval) getChildren().add(i, new Pane()); }}); }}
![Page 21: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/21.jpg)
package it.unitn.disi.lingProg.ronchet public class AggiungiTogli extends Application { Button[] btn; final int NBUTTONS = 9; @Override public void start(Stage primaryStage) { btn = new Button[NBUTTONS]; for (int i = 0; i < NBUTTONS; i++) btn[i] = new MyButton(i); final Pane root = new MyPane(); root.getChildren().addAll(btn); Scene scene = new Scene(root); primaryStage.setTitle("Togli uno alla volta!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { Application.launch(args); } private Button createButton(int i) {…} } class MyButton … class MyPane …
Ristrutturiamoilcodice
![Page 22: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/22.jpg)
ReimplementiamoMyPaneclass MyPane extends GridPane { final int NCOL = 3; final int NROW = 3; MyPane() {
ColumnConstraints cc1 = new ColumnConstraints(); cc1.setPercentWidth(100./ NCOL); getColumnConstraints().addAll(cc1, cc1, cc1);
RowConstraints rc1 = new RowConstraints(); rc1.setPercentHeight(100./ NROW); getRowConstraints().addAll(rc1, rc1, rc1); addEventHandler(KeyEvent.KEY_TYPED, new
EventHandler<KeyEvent>() { public void handle(KeyEvent keyEvent) { String key = keyEvent.getCharacter(); if (!("012345678".contains(key))) { keyEvent.consume(); return; } int i = Integer.parseInt(key); System.out.println(i); boolean retval = getChildren().remove(btn[i]); } }); }
![Page 23: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/23.jpg)
ReimplementiamoMyPane /** * aggiunge un elemento alla griglia mappando l'indice sequenziale * in posizione (riga, colonna) * * @param index indice dell'elemento * @param o nodo da aggiungere */ void add(int index, Node o) { add(o, index % NCOL, index / NCOL); } void addAll(Node[] n) { for (int i=0; i<n.length; i++) { add(i,n[i]); } }
![Page 24: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/24.jpg)
Esercizio2• Scrivereunaapplicazionechemostra8bottoni
numeratida1a8edunospaziovuoto.Premendountastonumericosullatastieraadiacenteallospaziovuoto,iltastosispostasullospaziovuotoeviceversa.
Premendountastononadiacenteallospaziovuoto,nonaccadenulla(opzionalmente:sisenteunbeepounmessaggiovocaledierrore).Situazionianomalevannogestite.
![Page 25: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/25.jpg)
Esempidiesame
Vedereifilesallegatiallalezioneodierna
![Page 26: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/26.jpg)
Esercizioperlunedi
Pensateci,poiinlaboratoriodiscuteretel’impiantodellasoluzione
epotretefaredomande
![Page 27: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/27.jpg)
SlotMachine1) Scrivere un’applicazione che implementi una slot machine. Tutto il codice deve essere documentato con Javadoc. L’applicazione presenterà una finestra che ricordi vagamente la seguente immagine
![Page 28: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/28.jpg)
2)Icontatorisonodue:Credito(indicaisoldidisponibili,espressiincentesimi,inizialmenteè0)Punteggio(inizialmenteè0)3)Lemoneteinizialmentesono3.Sonodeicerchisuciascunodeiqualièriportataladicitura“1Euro”.4)Cliccandosuunamoneta,questasparisceeilcreditovieneaumentatodi100.5)Ibottonisono:NuovapartitaSpin(disabilitatoseilcreditoèzero)Pay(disabilitatoseilcreditoèzero)
![Page 29: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/29.jpg)
6)Leruotedeisimbolisonotre,ugualitraloro.Ciascunacontieneglistessiseisimboli(dellefiguregeometrichestilizzate:barrainclinataadestra,rombo,cerchio,ecc.,sceglietevoi).Ogniruotamostraunsolosimboloallavolta.7)Cliccandosultasto“Nuovapartita”,seilcreditoèinferiorea100appareunafinestradipop-upchedice“nonhaicreditosufficiente”.Altrimentiilcreditovienediminuitodi100eilpunteggiovienesettatoa128.
![Page 30: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/30.jpg)
8)SeIltastoSpinèabilitato,cliccandoloisimbolidelletreruotevengonosceltiinmodocasuale.Adognipressionedeltasto“Spin”ilpunteggiovienedimezzato(maseè1diventa0).9)Cliccandosuunadelleruotedeisimboli,ilsuosimbolovienemodificato(masoloseilpunteggiononèzero)scegliendoloinmodocasuale(quellidellealtreruoterestanoimmutati).Ilpunteggiovienedimezzato.10)Seisimbolimostratidalletreruotesonouguali,appareunafinestradipop-upchedice“Haivinto”,ilcreditovieneincrementatodiunvaloreparialpunteggiomoltiplicatoper100,ilpunteggiodiventazero.
![Page 31: A proposito dell’esame - UniTrentolatemar.science.unitn.it/segue_userFiles/2019Programma... · 2019. 5. 11. · 6) Le ruote dei simboli sono tre, uguali tra loro. Ciascuna contiene](https://reader036.vdocuments.net/reader036/viewer/2022062611/6128d9c2e38f5226b61b40fb/html5/thumbnails/31.jpg)
11)Cliccandosultasto“Pay”appareunpop-upchedice“HaivintoXXEuro”,doveXXèilcreditodiviso100.Ilsistemavieneresettatonellacondizioneiniziale.