Anda di halaman 1dari 12

Elementi dellinterfaccia utente: componenti

I componenti dell'interfaccia utente sono elementi che possono essere aggiunti all'interno di contenitori (frame e pannelli). In questa dispensa prenderemo in considerazione solo i seguenti componenti di base: etichette (label) - istanze della classe JLabel; pulsanti (button) - istanze della classe JButton; caselle di testo (textfield) - istanze della classe JTextField; caselle di password (passwordfield) - istanze della classe JpasswordField.

JComponent

AbstractButton

JLabel

JTextComponent

JButton

JTextField

JPasswordField

Etichette: la classe JLabel


Unetichetta contiene una riga di testo che non pu essere modificata dallutente, ma solo dallapplicazione. Le etichette risultano molto utili per fornire, attraverso delle semplici frasi, indicazioni allutente sul contenuto dellinterfaccia o sulle operazioni che dovr compiere.

Costruttori della classe JLabel


public JLabel() Crea un'etichetta senza alcun contenuto.L'etichetta centrata verticalmente nell'area in cui visualizzata.

public JLabel(String testo) Costruisce un'etichetta centrata verticalmente e con il testo specificato, allineato a sinistra.

public JLabel(Icon icona) Costruisce un'etichetta centrata verticalmente e orizzontalmente, contenente l'icona specificata.

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

public JLabel(String testo, int allineamento) Costruisce un'etichetta, centrata verticalmente, con testo e allineamento orizzontale specificati.

public JLabel(Icon icona, int allineamento) Costruisce un'etichetta, centrata verticalmente, contenente licona specificata e con lallineamento orizzontale indicato.

public JLabel(String testo, Icon icona, int allineamento) Costruisce un'etichetta, centrata verticalmente, contenente il testo e licona specificati e con lallineamento orizzontale indicato. Il testo collocato sul bordo inferiore dellimmagine.

Il parametro allineamento specifica lallineamento orizzontale e pu assumere uno dei seguenti valori dell'interfaccia SwingConstants: LEFT CENTER RIGHT LEADING TRAILING

Metodi utili della classe JLabel


public String getText() Restituisce il testo dell'etichetta. public void setText(String testo) Imposta il testo dell'etichetta, come specificato. public Icon getIcon() Restituisce l'icona dell'etichetta. public void setIcon(Icon icona) Imposta l'icona dell'etichetta, come specificato. public int getIconTextGap() Restituisce lo spazio, in pixel, presente tra il testo e l'icona. public void setIconTextGap(int iconTextGap) Imposta lo spazio, in pixel, presente tra il testo e l'icona (il default 4). public int getVerticalAlignment() Restituisce l'allineamento verticale del contenuto dell'etichetta. Tale valore pu essere una delle seguenti costanti della classe SwingConstants: TOP (in alto); CENTER (centrato); BOTTOM (in basso).

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

public void setVerticalAlignment(int allineamento) Imposta l'allineamento verticale del contenuto dell'etichetta al valore specificato da allineamento. Il valore di default CENTER.

public int getHorizontalAlignment() Restituisce l'allineamento orizzontale del contenuto dell'etichetta. public void setHorizontalAlignment(int allineamento) Imposta l'allineamento orizzontale del contenuto dell'etichetta, al valore specificato da allineamento.

public int getVerticalTextPosition() Restituisce la posizione verticale del testo dell'etichetta, relativamente all'icona. I valori restituiti possono essere TOP, CENTER, BOTTOM, definiti nell'interfaccia SwingConstants.

public void setVerticalTextPosition(int textPosition) Imposta la posizione verticale del testo dell'etichetta, relativamente all'icona, in base a quanto specificato da textPosition. Il valore di default CENTER.

public int getHorizontalTextPosition() Restituisce la posizione orizzontale del testo dell'etichetta, relativamente all'icona. public void setHorizontalTextPosition(int textPosition) Imposta la posizione orizzontale del testo dell'etichetta, relativamente all'icona, in base a quanto specificato da textPosition.

public void setLabelFor(Component c) Imposta il componente etichettato da questa etichetta. Il parametro null se nessun componente associato alletichetta.

public Component getLabelFor() Restituisce il componente etichettato da questa etichetta. Restituisce null se nessun componente associato alletichetta.

protected String paramString() Restituisce una stringa che descrive letichetta. E usato per il debugging.

Icone: La classe ImageIcon


La classe ImageIcon unimplementazione dellinterfaccia Icon che disegna icone a partire dalle immagini.

Costruttori della classe ImageIcon


public ImageIcon(String filename) Crea unicona a partire dal file immagine specificato.

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

public ImageIcon(URL location) Crea unicona a partire dallurl specificato.

Metodi utili della classe ImageIcon


public void setDescription(String descrizione) Associa allicona una descrizione.

public String getDescription() Restituisce la descrizione associata allicona.

public int getIconWidth() Restituisce la larghezza dellicona.

public int getIconHeight() Restituisce laltezza dellicona.

Esempio: aggiungere una etichetta a un frame


Lesempio mostra come aggiungere al frame due etichette: una contenente solo testo e laltra unicona, come mostrato nella figura 1.

Figura 1 - Frame con due etichette

package cinziabb.uiproject0; import import import import import import java.awt.Container; javax.swing.Icon; javax.swing.ImageIcon; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel;

@SuppressWarnings("serial") public class MyFrame extends JFrame {


Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

public static final int WIDTH = 450; public static final int HEIGHT = 300; public static final int X = 100; public static final int Y = 100; private JPanel panel; private Container contentPane; public MyFrame() { super("MyFrame"); setSize(WIDTH,HEIGHT); setLocation(X,Y); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); (1) //Etichetta con testo JLabel textLabel = new JLabel("Warning"); //Etichetta con testo e icona Icon icona = new ImageIcon(getClass().getResource("warninglabelMin.jpg")); JLabel iconLabel = new JLabel(icona); //Inserimento delle etichette nel pannello panel = new JPanel(); panel.add(textLabel); panel.add(iconLabel); //Inserimento del pannello nel frame contentPane = getContentPane(); contentPane.add(panel);

(2)

(3)

public static void main(String args[]) { MyFrame frame= new MyFrame(); frame.setVisible(true); }

(1) - Creiamo unetichetta con testo Warning. (2) - Creiamo unetichetta con icona. Lcona viene creata a partire da un file jpg. (3) - Le etichette vengono aggiunte al pannello con il metodo add.

Caselle di testo: la classe JTextField


Le caselle di testo contengono una riga di testo che pu essere modificata sia dallutente, sia dallapplicazione e solitamente sono utilizzate per le operazioni di input.

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

Costruttori della classe JTextField


public JTextField() Crea una casella di testo vuota e con numero di colonne 0.

public JTextField(String testo) Crea una casella di testo con il testo specificato e numero di colonne 0.

public JTextField(int colonne) Costruisce una casella di testo vuota, con il numero di colonne specificato.

public JTextField(String testo, int colonne) Costruisce una casella di testo contenente il testo specificato e con il numero di colonne indicato.

Metodi utili della classe JTextField


public int getHorizontalAlignment() Restituisce l'allineamento orizzontale del testo. Possibili valori sono JTextField.LEFT; JTextField.CENTER; JTextField.RIGHT.

public void setHorizontalAlignment(int alignment) Imposta l'allineamento orizzontale del testo in base al valore specificato come parametro.

public int getColumns() Restituisce il numero di colonne della casella di testo.

public void setColumns(int columns) Imposta il numero di colonne della casella di testo al valore specificato dal parametro.

protected int getColumnWidth() Restituisce la larghezza di una colonna. Per default, la larghezza di una colonna coincide con la larghezza del carattere m, per il font usato.

public void setFont(Font f) Imposta il font per la casella di testo. Ridefinisce il metodo setFont della classe JComponent.

Metodi utili ereditati dalla classe JTextComponent


La classe astratta JTextComponent appartiene al package javax.swing.text. public void setText(String testo) Imposta la casella di testo al testo specificato.

public String getText()

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

Restituisce il testo contenuto nella casella di testo. public String getText(int offset, int lunghezza) Restituisce il testo contenuto nella parte di documento indicata. I parametri offset e lunghezza indicano rispettivamente l'inizio del testo e la lunghezza della stringa desiderata.

public String getSelectedText() Restituisce il testo selezionato all'interno della casella di testo. Se la selezione nulla o la casella di testo vuota, restituisce null.

public void setEditable(boolean b) Rende la casella di testo editabile o no, a seconda del valore del parametro.

public void select(int inizio, int fine) Seleziona il testo compreso tra inizio e fine.

public void selectAll() Seleziona tutto il testo presente nella casella di testo.

Caselle di password: la classe JPasswordField


Le caselle di testo contengono una riga di testo che pu essere modificata sia dallutente, sia dallapplicazione e solitamente sono utilizzate per le operazioni di input.

Costruttori della classe JPasswordField


public JPasswordField() Crea una casella di password vuota e con numero di colonne 0.

public JPasswordField(String testo) Crea una casella di password con il testo specificato e numero di colonne 0.

public JPasswordField(int colonne) Costruisce una casella di password vuota, con il numero di colonne specificato.

public JPasswordField(String testo, int colonne) Costruisce una casella di password contenente il testo specificato e con il numero di colonne indicato.

Metodi utili della classe JPasswordField


public char[] getPassword() Restituisce il testo contenuto nella casella di password in un array di caratteri.

public void setEchoChar(char c)

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

Imposta il carattere di echo della casella di password.

Esempio: aggiungere una casella di testo e una di password a un frame


Lesempio mostra come creare il frame di figura 2.

Figura 2 - Frame con etichette e caselle di testo

package cinziabb.uiproject1; import import import import import import java.awt.Container; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel; javax.swing.JPasswordField; javax.swing.JTextField;

@SuppressWarnings("serial") public class MyFrame extends JFrame { public static final int WIDTH = 600; public static final int HEIGHT = 100; public static final int X = 100; public static final int Y = 100; private JPanel panel; private Container contentPane; public MyFrame() { super("MyFrame"); setSize(WIDTH,HEIGHT); setLocation(X,Y); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Casella di testo JLabel username = new JLabel("username:"); JTextField textfield = new JTextField(20); //Casella di password JLabel password = new JLabel("password:"); JTextField passwfield = new JPasswordField(20); //Inserimento delle etichette e delle caselle di testo nel pannello panel = new JPanel(); panel.add(username); panel.add(textfield);

(1)

(2) (3)

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

panel.add(password); panel.add(passwfield); //Inserimento del pannello nel frame contentPane = getContentPane(); contentPane.add(panel); } public static void main(String args[]) { MyFrame frame= new MyFrame(); frame.setVisible(true); } } (1) - Il codice crea una etichetta username e una casella di testo di 20 colonne. (2) - Il codice crea una etichetta password e una casella di password di 20 colonne. (3) - Le etichette e le caselle di testo/password vengono inserirte nel pannello. Lordine di inserimento coincide con lordine di visualizzazione.

Pulsanti: la classe JButton


I pulsanti, che solitamente contengono unetichetta, sono usati per invocare unazione quando sono premuti dallutente, mediante il mouse.

Costruttori della classe JButton


public JButton() Crea un pulsante vuoto.

public JButton(String testo) Costruisce un pulsante con il testo specificato.

public JButton(Icon icona) Costruisce un pulsante con l'icona specificata.

public JButton(String testo, Icon icona) Costruisce un pulsante con il testo e l'icona specificati.

Metodi utili ereditati dalla classe AbstractButton


AbstractButton una classe astratta del package javax.swing. public String getText() Restituisce il testo del pulsante.

public void setText(String testo) Imposta il testo del pulsante al parametro specificato.

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

public Icon getIcon() Restituisce l'icona del pulsante.

public void setIcon(Icon defaultIcon) Imposta l'icona del pulsante al parametro specificato.

public Icon getRolloverSelectedIcon() Restituisce l'icona utilizzata per il rollover : passando con il mouse sull'icona, questa cambia.

public void setRolloverSelectedIcon(Icon rolloverSelectedIcon) Imposta l'icona utilizzata per il rollover.

public int getVerticalAlignment() Restituisce l'allineamento verticale del testo e dell'icona. I valori possibili sono: SwingConstants.CENTER (il default); SwingConstants.TOP; SwingConstants.BOTTOM .

public void setVerticalAlignment(int alignment) Imposta l'allineamento verticale del testo e dell'icona, al parametro specificato.

public int getHorizontalAlignment() Restituisce l'allineamento orizzontale del testo e dell'icona. I valori possibili sono: SwingConstants.RIGHT (il default); SwingConstants.LEFT; SwingConstants.CENTER.

public void setHorizontalAlignment(int alignment) Imposta l'allineamento orizzontale del testo e dell'icona, al parametro specificato.

public int getVerticalTextPosition() Restituisce la posizione verticale del testo, relativamente all'icona. Valori possibili sono: SwingConstants.CENTER (il default); SwingConstants.TOP; SwingConstants.BOTTOM .

public void setVerticalTextPosition(int textPosition) Imposta la posizione verticale del testo, relativamente all'icona, al valore del parametro.

public int getHorizontalTextPosition() Restituisce la posizione orizzontale del testo, relativamente all'icona. Valori possibili sono: SwingConstants.RIGHT; SwingConstants.LEFT; SwingConstants.CENTER.

public void setHorizontalTextPosition(int textPosition)

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

10

Imposta la posizione orizzontale del testo, relativamente all'icona, al valore passato come parametro. public int getIconTextGap() Restituisce lo spazio tra il testo e l'icona.

public void setIconTextGap(int iconTextGap) Imposta lo spazio tra il testo e l'icona, al valore specificato (il default 4).

public void doClick() Simula un clic del pulsante.

public void doClick(int pressTime) Simula un clic del pulsante. Il pulsante rimane premuto per pressTime millisecondi.

public void setEnabled(boolean b) Abilita o disabilita il pulsante, in base al valore del parametro.

Esempio: aggiungere un pulsante a un frame


Lesempio realizza il frame mostrato in figura 3.

Figura 3 - Frame con etichette, caselle di testo e pulsante

package cinziabb.uiproject2; import import import import import import import java.awt.Container; javax.swing.JButton; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel; javax.swing.JPasswordField; javax.swing.JTextField;

@SuppressWarnings("serial") public class MyFrame extends JFrame { public static final int WIDTH = 600; public static final int HEIGHT = 100; public static final int X = 100; public static final int Y = 100; private JPanel panel; private Container contentPane; public MyFrame() { super("MyFrame");
Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

11

setSize(WIDTH,HEIGHT); setLocation(X,Y); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Casella di testo JLabel username = new JLabel("username:"); JTextField textfield = new JTextField(20); //Casella di password JLabel password = new JLabel("password:"); JTextField passwfield = new JPasswordField(20); //Inserimento delle etichette e delle caselle di testo nel pannello panel = new JPanel(); panel.add(username); panel.add(textfield); panel.add(password); panel.add(passwfield); //Pulsante JButton submit = new JButton("submit"); //Inserimento del pulsante nel pannello panel.add(submit); //Inserimento del pannello nel frame contentPane = getContentPane(); contentPane.add(panel); } public static void main(String args[]) { MyFrame frame= new MyFrame(); frame.setVisible(true); } } (1) - Il codice crea il pulsante submit e lo aggiunge al pannello.

(1)

_____________________________________________________________
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Bocchi Cinzia Ultimo aggiornamento: 01/02/2013

12

Anda mungkin juga menyukai