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
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.
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
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.
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;
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.
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.
public void setHorizontalAlignment(int alignment) Imposta l'allineamento orizzontale del testo in base al valore specificato come parametro.
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.
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.
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.
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)
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.
public JButton(String testo, Icon icona) Costruisce un pulsante con il testo e l'icona specificati.
public void setText(String testo) Imposta il testo del pulsante al parametro specificato.
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 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.
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(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.
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.
12