Tuto Java Netbeans - Listas
Tuto Java Netbeans - Listas
if (chkGato.isSelected()) {
mensaje=mensaje+"Gato ";
}
if (chkRaton.isSelected()) {
mensaje=mensaje+"Raton ";
}
etiResultado.setText(mensaje);
10. Ejecute el programa. Seleccione por ejemplo las casillas Gato y Ratón.
Al pulsar Aceptar el resultado debe ser el siguiente:
CONCLUSIÓN
12. Acabas de asociar los tres botones de opción a un mismo grupo. Esto produce
que solo una de las tres opciones pueda estar activada. Pruébelo ejecutando el
programa.
13. Ahora interesa que la opción “Rojo” salga activada desde el principio. Una
forma de hacer esto es programando en el “Constructor” lo siguiente:
optRojo.setSelected(true);
14. El programa no está terminado aún. Interesa que cuando el usuario pulse el
botón Aceptar, en la etiqueta aparezca el color elegido. Para ello, en el
actionPerformed del botón Aceptar programe lo siguiente:
if (optRojo.isSelected()) {
mensaje=mensaje+"Rojo";
} else if (optVerde.isSelected()) {
mensaje=mensaje+"Verde";
} else if (optAzul.isSelected()) {
mensaje=mensaje+"Azul";
}
etiResultado.setText(mensaje);
15. Observa el código. En él se hace lo siguiente:
CONCLUSIÓN
Es totalmente necesario añadir un objeto del tipo ButtonGroup, y hacer que los
botones de radio pertenezcan a dicho grupo. En caso contrario, será posible
activar varios botones de opción a la vez.
EJERCICIO GUIADO. JAVA: CUADROS DE LISTA
4. Cámbiale el nombre al JList. Ten cuidado, ya que en los JList aparecen siempre
dentro de otro objeto llamado jScrollPane. Si miras en el Inspector, verás que al
pulsar en el botón + del jScrollPane aparecerá tu JList:
5. Aprovecha para cambiarle el nombre al JList. El nuevo nombre será lstColores.
6. Si te fijas en el JList, consiste en un cuadro que contiene una serie de Items. Estos
elementos pueden ser cambiados a través de la propiedad Model del JList.
7. Busca la propiedad Model y haz clic en el botón de los tres puntos. Aparecerá un
cuadro de diálogo parecido al siguiente. Solo tienes que seleccionar los elementos
que quieras y pulsar el botón “Borrar” (Remove) para eliminarlos de la lista.
Rojo
Verde
Azul
String mensaje;
13. Vamos a mejorar el programa. Puede suceder que el usuario no seleccione ningún
valor del cuadro de lista, y sería interesante en este caso que el programa avisara de
ello. Cambie el código del botón Aceptar por este otro código:
String mensaje;
if (lstColores.getSelectedIndex()==-1) {
mensaje="No hay un color seleccionado.";
} else {
mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();
}
etiResultado.setText(mensaje);
15. Si ejecuta el programa y pulsa el botón Aceptar sin seleccionar nada el resultado
debería ser el siguiente:
16. Se podría haber prescindido del botón aceptar si el código anterior se hubiera puesto
en el evento mouseClicked del cuadro de lista en vez de en el actionPerformed del
botón Aceptar. En este caso, cada vez que se seleccionara un elemento de la lista,
automáticamente aparecería el mensaje en la etiqueta.
CONCLUSIÓN
El objeto JList permite crear cuadros de lista. Estos objetos contienen una serie de
elementos que pueden ser seleccionados.
3. Añade un cuadro combinado (combo). Los cuadros combinados son objetos del tipo
JComboBox. Básicamente, un combo es una lista desplegable.
Rojo
Verde
Azul
Para ello, debes programar el evento actionPerformed del combo y añadir el siguiente
código:
mensaje=mensaje+cboColores.getSelectedItem().toString();
etiResultado.setText(mensaje);
11. Los cuadros combinados pueden funcionar también como cuadros de texto. Es decir,
pueden permitir que se escriba texto dentro de ellos. Para hacer esto, basta con
cambiar su propiedad “editable” y activarla.
12. Ejecuta el programa y observa como se puede escribir dentro del combo. Al pulsar
Enter, el programa funciona igualmente con el texto escrito.
Se escribe aquí y
se pulsa enter
CONCLUSIÓN
Los combos son listas desplegables donde se puede elegir una de las opciones
propuestas.
Los combos pueden funcionar también como cuadros de textos, si se activa la opción
editable.
5. Añade dos botones al formulario. Uno de ellos tendrá el texto “Curso 1” y se llamará
btnCurso1 y el otro tendrá el texto “Curso 2” y se llamará btnCurso2.
6. En el evento actionPerformed del botón “Curso 1” programa lo siguiente:
a. Lo que hace cada botón es rellenar el cuadro de lista con una serie de
nombres. En el caso del botón “Curso 1”, la lista se rellena con los nombres
Juan, María y Luis, mientras que en el caso del botón “Curso 2”, la lista se
rellena con los nombres Ana, Marta y Jose.
modelo.addElement("Ana");
modelo.addElement("Marta");
modelo.addElement("Jose");
lstNombres.setModel(modelo);
h. Así pues, aquí tienes una forma de cambiar el contenido de un cuadro de lista
desde el propio programa.
9. Prueba a ejecutar el programa. Observa como cuando pulsas cada botón cambia el
contenido de la lista:
Click y cambia el
listado.
10. Ahora añade el siguiente código al evento mouseClicked del cuadro de lista:
etiResultado.setText(lstNombres.getSelectedValue().toString());
Esta instrucción hace que al seleccionar un elemento del cuadro de lista éste
aparezca en la etiqueta etiResultado. Recuerda que el método getSelectedValue
permite recoger el elemento seleccionado (hay que convertirlo a cadena con toString)
11. Ejecuta el programa:
Click y aparece
el elemento
seleccionado en
la etiqueta.
12. Una propuesta. Añada un botón “Vaciar” llamado btnVaciar. Este botón vaciará el
contenido de la lista. Para esto lo único que tiene que hacer es crear un modelo y, sin
introducir ningún valor en él, asociarlo al cuadro de lista.
CONCLUSIÓN
Se puede crear un “modelo” y luego introducir datos en él. Luego se puede asociar
ese “modelo” a la lista. De esta manera se puede cambiar el contenido de la lista en
cualquier momento.
EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA
3. Elimina todos los elementos que contenga el combo. Recuerda, debes usar la
propiedad “model” del combo para cambiar sus elementos.
4. Después de haber hecho todo esto, tu ventana debe quedar más o menos así:
int i;
for (i=0;i<10;i+=2) {
modelo.addElement("Nº "+i);
}
cboNumeros.setModel(modelo);
Al igual que pasa con los cuadros de lista, los combos tienen un objeto
“modelo” que es el que realmente contiene los datos. En el caso de los
combos, para crear un objeto “modelo” se usará esta instrucción:
cboNumeros.setModel(modelo);
Se pulsa y se rellena
automáticamente
int i;
DefaultComboBoxModel modelo = new DefaultComboBoxModel();
for (i=1;i<10;i+=2) {
modelo.addElement("Nº "+i);
}
cboNumeros.setModel(modelo);
9. La única diferencia de este código es el for, que está diseñado para que se
introduzcan los números impares comprendidos entre 0 y 10 dentro del modelo.
11. Prueba el programa. Prueba los botones Pares e Impares y prueba el combo.
12. Sería interesante añadir un botón “Vaciar” llamado btnVaciar que vaciara el contenido
del combo. Esto se haría simplemente creando un modelo vacío y asignarlo al
combo. Se anima al alumno a que realice esta mejora.
CONCLUSIÓN
Un combo, al igual que los cuadros de lista, es un objeto que contiene a su vez otro
objeto denominado “modelo”.
Se puede crear un “modelo” y luego introducir datos en él. Luego se puede asociar
ese “modelo” al combo. De esta manera se puede cambiar el contenido del combo en
cualquier momento.
EJERCICIO GUIADO. JAVA: TOGGLEBUTTONS
f. Añade finalmente tres etiquetas conteniendo los números 40, 200, 200. La
primera se llamará etiPrecioInstalacion, la segunda etiPrecioFormacion y la
tercera etiPrecioAlimentacionBD.
El precio de los Extras dependerá de las opciones elegidas por el usuario. Por
ejemplo, si el usuario quiere Instalación y Formación, los extras costarán 240
euros.
precio_base = Double.parseDouble(txtPrecioBase.getText());
precio_instal = Double.parseDouble(etiPrecioInstalacion.getText());
precio_for = Double.parseDouble(etiPrecioFormacion.getText());
precio_ali = Double.parseDouble(etiPrecioAlimentacionBD.getText());
double precio_total;
precio_total = precio_base;
precio_base = Double.parseDouble(txtPrecioBase.getText());
precio_instal = Double.parseDouble(etiPrecioInstalacion.getText());
precio_for = Double.parseDouble(etiPrecioFormacion.getText());
precio_ali = Double.parseDouble(etiPrecioAlimentacionBD.getText());
c. Una vez obtenidos los datos en forma numérica, ya se pueden hacer cálculos
con ellos. El programa declara una nueva variable precio_total donde se
introducirá el resultado. En primer lugar se introduce en esta variable el precio
base.
double precio_total;
precio_total = precio_base;
d. A continuación se le suma al precio_total los precios de los extras si el botón
correspondiente está seleccionado. Esto se hace a través de if. Por ejemplo,
para sumar el extra por instalación:
Esto significa: “Si el botón instalación está seleccionado, añade al precio total
el precio por instalación”
tbtnInstalacion.setSelected(true);
Realmente, estos botones no suelen ser muy usados, ya que pueden ser sustituidos
por Cuadros de Verificación (JCheckBox) que son más conocidos.