NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 15: La classe Form.

 

Un oggetto Form è uno Screen capace di contenere un qualsiasi oggetto discendente da Item.

Il nome, in effetti, può trarre in inganno, facendoci pensare ad un form web per i dati, mentre Form è molto di più: è come un Frame, una finestra, di un'applicazione, tant'è che è possibile gestire anche il layout dello stesso, al fine di disporre gli elementi al suo interno (e, quindi, sul display del dispositivo) come si desidera.

 

 

Costruttori:

  • Form(String title);
  • Form(String title, Item[] items); .

 

Metodi utili:

append(Image img)   :   int Aggiunge un'immagine.
append(Item item)   :   int Aggiunge un Item (generico: Item viene esteso da molte classi !)
append(String str)   :   int Aggiunge una stringa.
get(int n)   :   Item Restituisce l'Item di posizione-indice n.
insert(int n, Item item)   : void Inserisce, nella posizione-indice n, un dato Item.
set(int n, Item item)   :   void Posiziona un Item nella posizione-indice n (sostituirà l'Item di posto n, eventualmente).
setItemStateListener(ItemStateListener iL)   :   void Imposta un listener per gli Item agganciati a tale Form.

 

Il layout di un Form è sempre organizzato per RIGHE: ogni volta che viene aggiunto un Item, se non vi sono condizioni di terminazione, J2ME cerca di posizionarlo sulla stessa riga dell'Item precedente, fino a riempire la riga (eventualmente, passerà alla successiva).

NOTA: i Form possono crescere e scorrere solo in senso orizzontale.

All'interno del Form, comunque, è possibile assegnare un allineamento ai vari elementi, ma questo non viene specificato con metodi o campi dell'oggetto Form, bensì degli Item in esso contenuti: ciascun Item, in effetti, ha un campo di allineamento (il cui valore, come vedremo, può essere specificato con setLayout(int l)) che indica dove dovrà essere visualizzato, sulla riga, l'Item. Di default, l'allineamento è a sinistra (LAYOUT_LEFT). Il tutto verrà trattato comunque nel capitolo dedicato agli Item ! ;-)

 

Il codice riportato qui sotto implementa una MIDlet che mostra a video un Form contenente tre Item (non li abbiamo ancora trattati, è vero, ma per mostrare le funzionalità di un Form è necessario questo piccolo salto in avanti...): una Stringa, un campo data e un RadioButton con tre voci.

Provate a muovermi tra le voci (verranno evidenziate la stringa, il campo data, ...) o a selezionare le voci del RadioButton cliccando sui pulsanti freccia o di conferma del 'cellulare'.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class Prova extends MIDlet implements CommandListener
{
private Display d;
private Form f;
private Command esci;


public Prova()
{
d = Display.getDisplay(this);
f = new Form("Mio Form");
StringItem si = new StringItem(null,"Stringa");
si.setLayout(Item.LAYOUT_RIGHT);
f.append(si);
DateField df = new DateField("Data", DateField.DATE);
df.setLayout(Item.LAYOUT_LEFT);
f.append(df);
ChoiceGroup cg=new ChoiceGroup("Radio Button",Choice.EXCLUSIVE,new String[] {"1","2","3"},null);
cg.setLayout(Item.LAYOUT_CENTER);
f.append(cg);
esci=new Command("Esci", Command.EXIT,0);
f.addCommand(esci);
f.setCommandListener(this);
d.setCurrent(f);
}

protected void startApp()
{
}

protected void pauseApp() { }

protected void destroyApp(boolean arg0)
{
notifyDestroyed();
}

public void commandAction(Command c, Displayable d)
{
int t = c.getCommandType();
if (t == Command.EXIT) destroyApp(true);
}
}

 

 

 
Vai all'inizio della pagina