Programación orientada a objetos

Controles Swing


Conjunto de herramientas de tipo control que permiten generar acciones o eventos dentro de una aplicación

Controles

  • Etiqueta (jLabel): un área de visualización de una cadena de texto o una imagen, o ambas.
  • Botón (jButton): un botón "oprimir"
  • Botón de 2 posiciones (jToggleButton): un botón con dos estados.
  • Casilla de activaciónn (jCheckBox):  un elemento puede ser selecccionado o deseleccionado. Por convención, cualquier jCheckBox en un grupo puede ser seleccionado.
  • Botón de opción (jRadioButton): un elemento puede ser selecccionado o deseleccionado.  Usado con un objeto buttonGroup para crar un grupo de botones en el cual un botón puede ser seleccionado a la vez.
  • Grupo de botones (buttonGroup): esta clase se utiliza para crear un conjunto de botones en que sólo se podrá seleccionar uno.
  • Lista desplegable (jComboBox): un componente que combina un botón o campo editable y una lista desplegable.
  • Lista (jList): un componente que permite seleccionar uno o más objetos de una lista.
  • Campo de texto (jTextField): un componente ligero que permite editar una línea idividual de texto.
  • Área de texto (jTextArea): un área de varias líneas que muestra textos sin adornos.
  • Barra de desplazamiento (jScrollBar): un componente que permite ajustar el contenido del área visible de otro componente.
  • Deslizador (jSlider): un componente que permite seleccionar gráficamente un valor al deslizar un tirador dentro de un intervalo limitado.
  • Barra de progreso (jProgressBar): informa habitualmente del progreso de algún trabajo, mostrando un porcentaje de realización y quizás una visualización textual de este porcentaje.
  • Cuadro formateado (jFormattedTextField): un componente que permite editar un valor formateado (línea de texto), así como recuperar un objeto particular una vez que se ha editado el texto.
  • Cuadro de contraseña (jPasswordField): un componenteque permite editar una línea individual de texto donde se indica que algo se ha tecleado, pero no muestra los caracteres originales.
  • Spinner (jSpinner): cuadro de entrada de una línea individual que permite seleccionar un número o un valor de una secuencia ordenada.
  • Separador (jSeparator): un componente de utilidad diversa para realizar líneas divisorias
  • Panel de texto (jTextPane): un componente de texto que se puede marcar con agtributos que se representarán gráficamente.
  • Panel editor (jEditorPane): un componente de texto para editar diferentes contenidos
  • Árbol (jTree): un control que muestra un conjunto de datos jerárquicos como un boceto.
  • Tabla (jTable): un componente utilizado para mostrar y editar las habituales tablas bidimensionales con celdas.

Entrada y Salida de Datos con jTextField()

La Entrada y Salida de datos desde controles visuales se basa en datos tipo cadena, lo que hace necesario su conversión al tipo de datos que se requiera en la programación.

  • getText() - Entrada:  Permite el ingreso de datos a través de un control visual de Java jTextField

Ejemplo:  Para dato1, dato2 y resultados de tipo double
dato1=Double.valueOf(jTextField1.getText());
dato2=Double.valueOf(jTextField2.getText());
resultado = dato1+dato2;

  • setText() - Salida: Permite la salida de datos a través de un control visual de Java jTextField

Ejemplo:  Para resultado tipo double y cadenaSalida tipo String
cadenaSalida= Double.toString(resultado);
jTextField3.setText(cadenaSalida);

Etiqueta (jLabel) para Textos / Imágenes

  • Para textos:  incluye textos al diseño que pueden ser formateados en tamaño, estilo, color, etc...
  • Para imágenes fijas: incluye imágenes al diseño insertando arcuivos de cualquier formato como jpg, png, etc.. Los archivos pueden ser cargardos desde el proyecto en uno de sus paquetes o externos desde cualquier ubicación, utilizando la opcion icon en Propiedades del jLabel.
  • Para imágenes por asignación: carga diferentes imágenes sobre un mismo jLabel por asignación de istintos archivos según la programación, que permite ir cambiado una imágen en el diseño.

Utilizando la librería:  import javax.swing.ImageIcon;
jLabel.setIcon(new ImageIcon(getClass().getResource("imagen1.png")));
Sin la librería:
jLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("imagen1.png")));

  • Para cargar una imagen de fondo:  permite fijar una imagen de fondo a nivel de presentación o para diseñar montajes de controles sobre la imagen.

En la forma de diseño del JFrame, en el navegador, con el botón derecho del mause sobre [JFrame], en Activar gestor de distribución, se selecciona la opción Diseño absoluto.

Luego del diseño de controles se utiliza un JLabel para fijar una imagen en el área del Frame deseado.  Si se monta el fondo y luego se carga los controles, se debe ordenar en el navegador asegurándose que el jLaber con la imagen de fondo este siempre al final.

Controles de Selección

  • buttonGroup

Se programa la constructora adicionando los jRadioButton al grupo.
Ejemplo: buttonGroup1.add(jRadioButton1); ...

  • jRadioButton, jCheckBox

Se programa la selección de un botón de opción.
Ejemplo: if (jRadioButton1.isSelected()) ...

  • jComboBox, jList

Se programa la selección de cada uno de los ítem de la caja combinada.
Ejemplos:
Comparando con cada ítem:  if (jComboBox1.getSelectedItem().equals("ítem1"))...
Comparando con la posición de cada ítem (0, 1, 2,…):   if (jComboBox1.getSelectedIndex()==0)...

Conversión de datos entre Numéricos y Cadena

  • valueOf de la Clase String
  • parseInt de la Clase Integer
  • parseFloat de la Clase Float
  • Etc...

Ejemplos:

  • De String a Número:  int valor = Integer.parseInt(cadena); //Long, Float, Double
  • De Número a String:  String cadena = Integer.toString(valor);  //Long, Float, Double
  • De Double a String: String cadena = String.valueOf(valorCualquierTipo);
  • De String a Double: double valor = Double.valueOf(cadena);

Inicialización de algunos controles

  • jProgressBar1.setValue(0);
  • buttonGroup1.clearSelection();
  • jRadioButton1.setSelected(false);
  • jCheckBox1.setSelected(false);
  • jTextField1.setText(String.valueOf(0));
  • jTextField1.setText("");
  • jTextField1.setText(null);
  • jComboBox1.setSelectedIndex(0);  // ubica el campo en el primer ítem
  • jComboBox1.setSelectedIndex(-1); // se ubica en una posición sin ítem

Volver al Contenido