Esercizio 3.


Java Sun

Earthweb
(ex Gamelan)

Jars

Java Boutique

Java World

PIP






  Es.3

   (Gestione degli eventi) Si tratta di fare un'applet in grado di verificare se un numero è o meno primo. L'applet dovrà contenere una label col titolo "Test di primalità", un TextField per permettere all'utente di immettere il suo numero (accanto al Textfield ci sarà una scritta "inserire un numero"), e un pulsante (con la scritta "premi" o qualcosa di simile). La classe dovrà avere un metodo che determina se un numero è primo o meno. Il pulsante avrà uno sfondo colorato. Finalmente dovrà comparire la risposta da qualche parte dopo che l'utente ha premuto il pulsante. Nel caso il numero n non sia primo, nella risposta dovrà comparire una fattorizzazione non banale di n (per es. "Il tuo numero non è primo: 12 = 3 x 4"). Finalmente si cercherà di capire fino a che punto i risultati ottenuti sono attendibili (provate ad inserire n = tre miliardi).


   Per inizializzare un TextField:
TextField TF = new TextField(S,10);
inizializza un TextField con la stringa S e con 10 colonne (si può prendere S = "").
Per ottenere l'input di un TextField si usa il metodo getText() della classe Textfield, il metodo ritorna una stringa:
String Str = TF.getText();
Adesso bisogna convertire questa stringa in un int per farci i conti, per questo si usa il metodo Integer.parseInt(S)
Potrà tornare utile usare l'operatore %. Si ricorda che se n e r sono due int, allora n/r è l'int parte intera di n/r (per es. 5/2 = 2), mentre n%r è l'int uguale al resto nella divisione n/r (cioè n modulo r), in conclusione abbiamo: n = (n/r)*r+(n%r).
Prima di iniziare a battere del codice è preferibile pensare bene (magari facendo un disegno) alla pesentazione (cioè all'interfaccia utente GUI); in particolare la scelta del layout è molto importante (per i layout vedere la PIP: gestire lo schermo).
Per fare comparire la risposta si può sia usare g.drawString(S,x,y) con x e y opportuni, oppure estendere la classe Panel, per esempio myPanel e definire un metodo paint e un metodo ChangeText nella classe myPanel. Ricordarsi che è sempre preferibile lavorare in coordinate relative.

Per scaricare una possibile soluzione: NumPrimo.java, myTextPanel.java.



 next		content		previous