Soluzioni allo scritto di Interfacce Utente - Settembre 2005

I testi della parte teorica NON sono divulgati. Questo perche' avete gia' un esempio in rete, e le possibili domande di teoria sono TUTTE sulle dispense. Essendo la scelta limitata (perche' il materiale delle dispense e' limitato), se mettessi in rete tutti i testi, a un certo punto non saprei piu' che domande inventare.
Sono qui dati solo i riferimenti per le soluzioni, ad uso di chi ha fatto lo scritto.

Per la parte pratica invece viene divulgato anche il testo.

Soluzione Parte teorica

Le soluzioni alla parte teorica si trovano sulle dispense. In particolare:

Soluzione Parte pratica

(Il testo e' in corsivo)

Contesto generale per tutti gli esercizi

Consideriamo un'interfaccia che consiste in una finestra top-level con:

Esercizio 1

Stabilire una configurazione da dare all'interfaccia. Fare un disegno schematico.
Spiegare quale gerarchia di contenimento e quali layout manager si possono usare per ottenere questa configurazione.

La soluzione di questo esercizio dipende dalla configurazione scelta.

Errori frequenti (peraltro non gravi):
(a) usare contenitori superflui, per esempio un contenitore che contiene un unico componente
(b) se si organizza la finestra con un layout manager di tipo BorderLayout, l'area di lavoro sarebbe meglio metterla al centro, in modo tale che le venga assegnato lo spazio eccedente quanto l'utente allarga la finestra.

Esercizio 2

Supponiamo che i valori dello slider siano interi compresi nell'intervallo da 0 a 100 (estremi inclusi).
Scrivere lo PSEUDO CODICE del corpo delle callback associate allo slider e al campo di testo in modo tale che istante per istante il numero mostrato nel campo di testo e il valore attuale dello slider coincidano
Nota: assumere che l'utente digiti nel campo di testo solo stringhe che rappresentano interi fra 0 e 100.

Soluzione:

Callback dello slider

Callback del campo di testo

Errori frequenti:
(a) compiere operazioni gia' fatte automaticamente da Java (per esempio muovere il cursore dello slider)
(b) scambiare le due callback!

Esercizio 3

Scrivere in PSEUDO CODICE il corpo della funzione di ridisegnamento (in Java paint o paintComponent) associata al pannello in modo tale che nel pannello appaia un cerchio con le seguenti caratteristiche:

Soluzione:

Errori frequenti:
(a) Il colore rosso NON e' attributo del cerchio, ma va impostato nel sistema grafico PRIMA di disegnare il cerchio.
(b) Non scrivere come e' calcolato il raggio del cerchio oppure prendere la differenza tra larghezza e altezza invece che il minimo.

Esercizio 4

Affinche' succeda effettivamente che, istante per istante, il cerchio abbia le dimensioni rispondenti alla posizione dello slider (vedi esercizio 3), e' necessario cambiare qualcosa nelle callback scritte per rispondere all'esercizio 2?

Soluzione:
E' necessario aggiungere la chiamata alla funzione di ridisegnamento del pannello grafico (repaint), in modo tale che il disegno venga adeguato al nuovo valore immesso dall'utente.