Una vez definido el layout, podemos iniciar la inclusión de los componentes
Dado que todos los componentes, heredan de JComponent, podemos revisar los métodos más importantes, y que serán comunes a todos.
Dimension getMaximumSize() Dimension getMinimumSize() Dimension getPreferredSize() Dimension getSize(Dimension d) void setMaximumSize(Dimension d) void setMinimumSize(Dimension d) void setPreferredSize(Dimension d) void setSize(Dimension d) void setSize(int width, int height) |
Devuelve y establece los valores acerca del tamaño del componente |
String getToolTipText() void setToolTipText(String text) |
Devuelve o establece el toolTip (mensaje emergente que aparece al situar el ratón encima del componente) |
boolean isFocusable()void setFocusable(boolean focusable) | Indica el estado / activa la posibilidad de que reciba foco |
boolean isVisible()void setVisible(boolean v) | Indica el estado / activa la visibilidad del componente |
boolean isEnabled()void setEnabled(boolean e) | Indica el estado / activa el componente |
boolean requestFocusInWindow() | Activa el foco en el componente |
boolean isOpaque()void setOpaque(boolean opaque) | Indica el estado / activa la opacidad del componente |
void setBackground(Color color) color getBackGroung() |
Devuelve o establece el color de fondo del componente |
void setForeground(Color color) color getForeground () |
Devuelve o establece el color de primer plano del componente |
void setBounds(int x, int y, int width, int height) | Establece la posición y el tamaño del componente |
Eventos
Todos los componentes de Swing disponen de ComponentEvent/ComponentListener , que se dispara cuando el componente cambia de visibilidad, tamaño, o posición
JPanel – Contenedor para todo tipo de componentes
Podemos crear tantos paneles como necesitemos, cada uno con el Layout que nos interés, y dentro añadir los componentes necesarios, Luego estos paneles se añaden al panel estándar que incorpora, por ejemplo, Frame, para montar la pantalla
Constructor
JPanel() | Crea un panel con el Layout por defecto |
JPanel(LayoutManager layout) | Crea un panel con el layout indicado |
En el ejemplo siguiente, modificamos la clase PrRadioButton, para añadir los botones dentro de un subpanel, y aprovechar para darle color y bordes
Para conseguir que los radios también tomen color, deberemos utilizar setBackground también con ellos, y para que sea más fácil de mantener, podríamos hacer que los botones cogieran el color desde el panel; de esta forma solo deberíamos cambiar el color en un sitio
JButton – Botón que puede contener texto
Constructores
JButton() | Crea botón sin texto ni icono |
JButton(String s) | Crea el botón con texto |
JButton(Icon i) | Crea el botón con el icono. |
Para poder utilizar los Iconos, deberemos instanciarlos previamente, con el constructor de ImageIcon, que espera la ruta de una imagen
JLabel – Representa una etiqueta de texto o imagen, que no puede ser modificada
Constructores
public JLabel ()public JLabel (java.lang.String text)
public JLabel (java.lang.String text, public JLabel (Icon image) public JLabel (Icon image, int horizontalAlignment) public JLabel (Java.lang.String text, Icon icon, |
Al construir el JLabel, podemos incluir el texto, la imagen e indicar la alineación, esto último utilizando las constantes de SwingConstants LEFT, CENTER, RIGHT, LEADING, TRAILING. |
JTextComponent – Componentes de texto
Es la clase abstracta de la que heredan todos los componentes que son cajas editables,y que se dividen en dos grupos; los que gestionan texto plano como TextField, JPasswordField, JFormattedTextField, y JTextArea, y los que soportan características de edición, como Negrita, Subrayado, Fuente, Color,… y que son JEditorPane y JTextPane
Los métodos comunes que van a heredar el resto de clases de texto son:
void copy() | Copia el texto seleccionado en el portapapeles |
void cut() | Mueve el texto seleccionado al portapapeles |
void paste() | Pega el contenido del portapapeles |
void select(int start, int end)void selectAll() | Selecciona el área indicada o todo el contenido |
String getSelectedText() | Devuelve el texto seleccionado |
int getselectionStart() int getSelectionEnd() void setSelectionEnd(int end) void setSelectionStart(int start) |
Devuelve o establece la posición del primer/ultimo carácter del texto seleccionado |
String getText() String getText(int offset, int length) void setText(String newText) |
Devuelve o establece todo o la parte indicada del texto del componente |
void setEditable(boolean editable) boolean isEditable() |
Comprueba o establece la condición de editable |
JTextField – Presenta un campo de texto plano
JPasswordField – Campo para texto plano en donde no se visualiza lo escrito
Dispone de constructores para indicar el texto inicial y el número de columnas que soportará
Su utilización, puede ser algo así
Pero si queremos ver algo más, deberíamos añadir eventos, ya que no podremos recoger el valor de estos campos, hasta que alguien (el evento) nos diga que se ha llenado, y también vamos a empezar a aislar un poco las pantallas.
JTextArea – Area de entrada de texto multilinea
Dispone de constructores para indicar el texto inicial y el número de columnas y el número de filas que soportará
Dispone de métodos para indicar filas (setRows), columnas (setColumns), tipo de fuente (setFont) y un método para insertar texto en una posición determinada (insert), y otro para añadir texto al final (append)
Su utilización puede ser así:
JToggleButton Boton que presenta dos estados
Se pueden implementar independientes (Checkboxes) o Exclusivos (RadioButton)
Constructores
JToggleButton() | Crea el botón sin texto/imagen y lo deja OFF. |
JToggleButton(Icon icon) | Crea un botón deseleccionado con imagen |
JToggleButton(Icon icon, boolean selected) | Crea el botón con imagen y estado |
JToggleButton(String text) | Crea el botón con texto, lo deja sin seleccionar |
JToggleButton(String text, boolean selected) | Crea el botón con texto y lo deja seleccionado |
JCheckBox Permite seleccionar una opción entre varias
Constructor
JJCheckBox() | Crea un Checkbox sin texto y desmarcado |
JChechBox(String s) | Crea un checkbox con texto |
JCheckBox(String text, boolean selected) | Crea un checkbox con texto y estado. |
Métodos
Dispone de métodos isSelected/setSelected(boolean) para activar/o comprobar si está activo (marcado) el correspondiente checkbox
JRadioButton – Despliega una lista de opciones y permite seleccionar una de ellas
Dispone de constructor vacío, constructor con String para añadir texto, y constructor con string y booleano para indicar estado
Como en un grupo estos botones son excluyentes, deberemos utilizar la clase ButtonGroup para indicar todos los botones que pertenecen a un mismo grupo
Métodos
Dispone de métodos isSelected/setSelected(boolean) para activar/o comprobar si está activo (marcado) el correspondiente JRadioButton
JComboBox – despliega una lista de opciones para permitir elegir una
Constructor
JComboBox() | Constructor vacío, deberemos añadir luego la lista. |
JComboBox(Object[] items) | Creará el combo con los objetos del array |
JComboBox(Vector<?> items) | Crea el combo con los objetos del vector |
Métodos
void addItem(Object anObject) | Añade opciones a la lista |
void removeItem(Object anObject) | Borra opción de la lista |
void removeAllItems() | Borra toda la lista |
void setEditable(boolean b) | Indica si el combo es editable |
Object getSelectedItem() | Devuelve el objeto seleccionado |