PRACTICAS DE COMPONENTES

download PRACTICAS DE COMPONENTES

of 44

Transcript of PRACTICAS DE COMPONENTES

  • 8/3/2019 PRACTICAS DE COMPONENTES

    1/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 1

    EJERCICIO GUIADO. JAVA: CUADROS DE VERIFICACIN

    1. Realiza un nuevo proyecto.

    2. En la ventana principal debes aadir lo siguiente:

    a. Un botn Aceptar llamado btnAceptar.b. Una etiqueta con borde llamada etiResultado.

    3. Aade tambin tres cuadros de verificacin. Estos cuadros son objetos del tipoJCheckBox.

    4. Aade tres JCheckBox y cambia el texto de ellos, de forma que aparezca Perro,Gato y Ratn.

    5. Debe cambiar el nombre de cada uno de ellos. Se llamarn: chkPerro, chkGato,chkRaton.

    6. La ventana tendr el siguiente aspecto cuando termine:

  • 8/3/2019 PRACTICAS DE COMPONENTES

    2/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 2

    7. El programa debe funcionar de la siguiente forma:

    Cuando el usuario pulse aceptar, en la etiqueta aparecer un mensaje indicando qu

    animales han sido seleccionados. Para ello hay que programar el eventoactionPerformeddel botn Aceptar. En ese evento aada el siguiente cdigo:

    String mensaje="Animales elegidos: ";

    if (chkPerro.isSelected()) {

    mensaje=mensaje+"Perro ";

    }

    if (chkGato.isSelected()) {

    mensaje=mensaje+"Gato ";

    }

    if (chkRaton.isSelected()) {

    mensaje=mensaje+"Raton ";

    }

    etiResultado.setText(mensaje);

    8. Observa el cdigo. En l se hace lo siguiente:

    a. Se crea una variable de cadena llamada mensaje.b. En esa variable se introduce el texto Animales elegidos:

    c. Luego, compruebo si est seleccionada la casilla de verificacin chkPerro. Si esas concateno a la cadena mensaje la palabra Perro.d. Luego compruebo si est seleccionada la casilla de verificacin chkGato y hago

    lo mismo.e. Lo mismo con la casilla chkRaton.f. Finalmente presento la cadena mensaje en la etiqueta etiResultado.

    9. Observa el mtodo isSelected() propio de las casillas de verificacin, permiten saber siuna casilla est activada o no.

    10. Ejecute el programa. Seleccione por ejemplo las casillas Gato y Ratn. Al pulsar

    Aceptar el resultado debe ser el siguiente:

  • 8/3/2019 PRACTICAS DE COMPONENTES

    3/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 3

    CONCLUSIN

    Los cuadros de verificacin (JCheckBox) se usan cuando quieres seleccionar variasopciones.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    4/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 4

    EJERCICIO GUIADO. JAVA: BOTONES DE OPCIN

    1. Realiza un nuevo proyecto.

    2. En la ventana principal debes aadir lo siguiente:

    a. Un botn Aceptar llamado btnAceptar.b. Una etiqueta con borde llamada etiResultado.

    3. Aade un panel. Un panel es una zona rectangular que puede contener elementos (botones,etiquetas, etc) La forma de poner un panel es a travs del objeto JPanel.

    4. Una vez aadido el panel en el JFrame, le pondremos un borde para poder localizarlofcilmente. Debes hacer lo siguiente:

    c. Selecciona el panel que has aadido.d. Activa la propiedad Border (botn con tres puntos)e. Busca el tipo de borde llamado TitledBorder (borde con ttulo) y pon el ttulo colores.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    5/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 5

    5. Tu ventana debe quedar ms o menos as:

  • 8/3/2019 PRACTICAS DE COMPONENTES

    6/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 6

    6. Ahora debes aadir tres botones de opcin (botones de radio) dentro del panel. Estos botones

    son objetos del tipo JRadioButton.

    7. Aade tres JRadioButton y cambia el texto de ellos, de forma que aparezca Rojo, Verde yAzul.

    8. Debe cambiar el nombre de cada uno de ellos. Se llamarn: optRojo, optVerde, optAzul.

    9. La ventana tendr el siguiente aspecto cuando termine:

    10. Si ejecuta el programa, observar que pueden seleccionarse varios colores a la vez. Esto noes interesante, ya que los botones de opcin se usan para activar solo una opcin entrevarias.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    7/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 7

    11. Hay que hacer que solo un botn de opcin pueda estar seleccionado a la vez. Para ello, debe

    aadir un nuevo objeto. Realice los siguientes pasos:

    f. Aada un objeto del tipo ButtonGroup al formulario. Atencin! Este objeto es invisible,y no se ver en el formulario, sin embargo, lo podris ver en el Inspector, en la parte deOtros Componentes:

    g. Tienes que darle un nombre al ButtonGroup. El nombre ser grupoColores.h. Ahora, hay que conseguir que los tres botones pertenezcan al mismo grupo. Es decir,

    que pertenezcan al grupo grupoColores.i. Selecciona el botn de opcin optRojo y cambia su propiedad buttonGroup, indicando

    que pertenece al grupo colores (observa la imagen):

  • 8/3/2019 PRACTICAS DE COMPONENTES

    8/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 8

    j. Haz lo mismo con los botones optVerde y optAzul.

    12. Acabas de asociar los tres botones de opcin a un mismo grupo. Esto produce que solo unade las tres opciones pueda estar activada. Prubelo ejecutando el programa.

    13. Ahora interesa que la opcin Rojo salga activada desde el principio. Una forma de hacer esto

    es programando en el Constructor lo siguiente:

    optRojo.setSelected(true);

    El mtodo setSelected hace que se pueda activar o desactivar un botn de opcin.

    Prueba el programa. Observa como la opcin Rojo est activada inicialmente.

    14. El programa no est terminado an. Interesa que cuando el usuario pulse el botn Aceptar, enla etiqueta aparezca el color elegido. Para ello, en el actionPerformeddel botn Aceptarprograme lo siguiente:

    String mensaje="Color elegido: ";

    if (optRojo.isSelected()) {

    mensaje=mensaje+"Rojo";

    } else if (optVerde.isSelected()) {

    mensaje=mensaje+"Verde";

    } else if (optAzul.isSelected()) {

    mensaje=mensaje+"Azul";

    }

    etiResultado.setText(mensaje);

  • 8/3/2019 PRACTICAS DE COMPONENTES

    9/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 9

    15. Observa el cdigo. En l se hace lo siguiente:

    k. Se crea una variable de cadena llamada mensaje.

    l. En esa variable se introduce el texto Color elegido: m. Luego se comprueba que opcin est seleccionada, usando el mtodo isSelected de

    los botones de opcin. Este mtodo te dice si un botn est seleccionado o no.n. Segn la opcin que est seleccionada, se aade un texto u otro a la cadena mensaje.o. Finalmente se muestra la cadena mensajeen la etiqueta etiResultado.

    16. Ejecute el programa. Seleccione por ejemplo la Verde. Al pulsar Aceptar el resultado debe serel siguiente:

    CONCLUSIN

    Los botones de opcin, tambin llamados botones de radio (JRadioButton) se usan cuandoquieres que el usuario pueda elegir una opcin de entre varias.

    Es interesante que los botones de radio aparezcan dentro de un panel JPanel. Se recomienda

    colocar un borde al panel.

    Es totalmente necesario aadir un objeto del tipo ButtonGroup, y hacer que los botones deradio pertenezcan a dicho grupo. En caso contrario, ser posible activar varios botones deopcin a la vez.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    10/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 10

    EJERCICIO GUIADO. JAVA: CUADROS DE LISTA

    1. Realiza un nuevo proyecto.

    2. En la ventana principal debes aadir lo siguiente:

    p. Un botn Aceptar llamado btnAceptar.q. Una etiqueta con borde llamada etiResultado.

    3. Aade un cuadro de lista. Los cuadros de listas son objetos JList.

    4. Cmbiale el nombre al JList. Ten cuidado, ya que en los JList aparecen siempre dentro de otro

    objeto llamado jScrollPane. Si miras en el Inspector, vers que al pulsar en el botn + deljScrollPane aparecer tu JList:

  • 8/3/2019 PRACTICAS DE COMPONENTES

    11/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 11

    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 elementospueden ser cambiados a travs de la propiedad Model del JList.

    7. Busca la propiedad Model y haz clic en el botn de los tres puntos. Aparecer un cuadro dedilogo parecido al siguiente. Solo tienes que seleccionar los elementos que quieras y pulsarel botn Borrar (Remove) para eliminarlos de la lista.

    8. Puedes aadir elementos escribindolos en el cuadro Artculo y luego pulsando el botnAadir (Add).

    9. Debes hacer que la lista sea la siguiente:

    RojoVerdeAzul

    10. Ahora programaremos el actionPerformeddel botn Aceptar. Debes introducir el siguientecdigo:

    String mensaje;

    mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();

    etiResultado.setText(mensaje);

  • 8/3/2019 PRACTICAS DE COMPONENTES

    12/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 12

    11. Observa el cdigo:

    r. Se crea una variable de cadena llamada mensaje.

    s. Y dentro de esta variable se introduce una concatenacin de cadenas.t. Observa la parte: lstColores.getSelectedValue(), esta parte devuelve el valor

    seleccionado de la lista.u. Hay que tener en cuenta que este valor no es una cadena, por eso hay que convertirla

    a cadena aadiendo .toString().v. De esta manera puedes extraer el elemento seleccionado de un cuadro de lista.w. Luego simplemente ponemos la cadena mensaje dentro de la etiqueta.

    12. Ejecuta el programa y observa su funcionamiento. Por ejemplo, si seleccionas el color verde ypulsas aceptar el resultado ser el siguiente:

    13. Vamos a mejorar el programa. Puede suceder que el usuario no seleccione ningn valor delcuadro de lista, y sera interesante en este caso que el programa avisara de ello. Cambie el

    cdigo del botn Aceptar por este otro cdigo:

    String mensaje;

    if (lstColores.getSelectedIndex()==-1) {

    mensaje="No hay un color seleccionado.";

    } else {

    mensaje="El color seleccionado es: "+lstColores.getSelectedValue().toString();

    }

    etiResultado.setText(mensaje);

    14. Observa el cdigo:

    x. El mtodo getSelectedIndex me dice el ndice del elemento que est seleccionado.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    13/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 13

    y. Por ejemplo, si est seleccionado el primero el ndice es 0, si est seleccionado elsegundo el ndice es 1, etc.

    z. Si este mtodo devuelve -1, entonces es seal de que no hay ningn elementoseleccionado.

    aa. Aprovecho esto para mostrar un mensaje indicando lo sucedido.

    15. Si ejecuta el programa y pulsa el botn Aceptar sin seleccionar nada el resultado debera serel siguiente:

    16. Se podra haber prescindido del botn aceptar si el cdigo anterior se hubiera puesto en elevento mouseClicked del cuadro de lista en vez de en el actionPerformeddel botn Aceptar.En este caso, cada vez que se seleccionara un elemento de la lista, automticamenteaparecera el mensaje en la etiqueta.

    Se anima a que realice esta modificacin.

    CONCLUSINEl objeto JList permite crear cuadros de lista. Estos objetos contienen una serie de elementosque pueden ser seleccionados.

    A travs del mtodo getSelectedValue se puede obtener el elemento que est seleccionado.(Recuerda convertirlo a cadena con toString)

    A travs del mtodo getSelectedIndex se puede saber la posicin del elemento seleccionado.Si este ndice es -1, entonces sabremos que no hay ningn elemento seleccionado.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    14/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 14

    EJERCICIO GUIADO. JAVA: CUADROS COMBINADOS

    1. Realiza un nuevo proyecto.

    2. En la ventana principal debes aadir lo siguiente:

    bb. Una etiqueta con borde llamada etiResultado.

    3. Aade un cuadro combinado (combo). Los cuadros combinados son objetos del tipoJComboBox. Bsicamente, un combo es una lista desplegable.

    4. Cmbiale el nombre al JComboBox. El nombre ser cboColores. Tu programa debe tener ms

    o menos este aspecto.

    5. Los elementos del cboColores pueden ser cambiados a travs de la propiedad Model.Selecciona el combo y activa la propiedad Model (el botoncito con los tres puntos) Aparecerlo siguiente:

  • 8/3/2019 PRACTICAS DE COMPONENTES

    15/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 15

    6. Al igual que pasaba con los cuadros de lista, se pueden eliminar los elementos que contiene elcombo y aadir elementos propios. Use los botones Aadir y Eliminar para aadir la siguientelista de elementos:

    RojoVerdeAzul

    7. Ejecuta el programa y observa el funcionamiento del desplegable...

  • 8/3/2019 PRACTICAS DE COMPONENTES

    16/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 16

    8. Vamos a hacer que cuando se elija un elemento del desplegable, en la etiqueta aparezca unmensaje indicando el color elegido.

    Para ello, debes programar el evento actionPerformeddel combo y aadir el siguiente cdigo:

    String mensaje="El color elegido es ";

    mensaje=mensaje+cboColores.getSelectedItem().toString();

    etiResultado.setText(mensaje);

    9. Este cdigo hace lo siguiente:

    cc. Crea una variable de cadena.dd. Concatena dentro de ella el mensaje El color elegido es con el color seleccionado.ee. Observa el mtodo getSelectedItem, se usa para saber el elemento seleccionado del

    combo. Es necesario convertirlo a texto con toString.ff. Finalmente se coloca el mensaje en la etiqueta.

    10. Ejecuta el programa y comprueba su funcionamiento. Por ejemplo, si elegimos el color verde,el aspecto del programa ser el siguiente:

    11. Los cuadros combinados pueden funcionar tambin como cuadros de texto. Es decir, puedenpermitir que se escriba texto dentro de ellos. Para hacer esto, basta con cambiar su propiedadeditable y activarla.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    17/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 17

    12. Ejecuta el programa y observa como se puede escribir dentro del combo. Al pulsar Enter, elprograma funciona igualmente con el texto escrito.

    CONCLUSIN

    Los combos son listas desplegables donde se puede elegir una de las opciones propuestas.

    Los combos pueden funcionar tambin como cuadros de textos, si se activa la opcineditable.

    A travs del mtodo getSelectedItem se puede extraer la opcin seleccionada o el texto escritoen el combo.

    Se escribe aqu yse pulsa enter

  • 8/3/2019 PRACTICAS DE COMPONENTES

    18/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 18

    EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA

    1. Realiza un nuevo proyecto.

    2. En la ventana principal debes aadir lo siguiente:

    gg. Una etiqueta con borde llamada etiResultado.

    3. Aade un cuadro de lista al formulario (JList).

    4. Borra todo el contenido de la lista (propiedad model) y cmbiale el nombre a la lista. La lista sellamar lstNombres. Recuerda que las listas aparecen dentro de un objeto del tipo

    JScrollPane.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    19/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 19

    5. Aade dos botones al formulario. Uno de ellos tendr el texto Curso 1 y se llamarbtnCurso1 y el otro tendr el texto Curso 2 y se llamar btnCurso2.

    6. En el evento actionPerformeddel botn Curso 1 programa lo siguiente:

    DefaultListModel modelo = new DefaultListModel();

    modelo.addElement("Juan");

    modelo.addElement("Mara");

    modelo.addElement("Luis");lstNombres.setModel(modelo);

    7. En el evento actionPerformeddel botn Curso 2 programa lo siguiente:

    DefaultListModel modelo = new DefaultListModel();

    modelo.addElement("Ana");

    modelo.addElement("Marta");

    modelo.addElement("Jose");

    lstNombres.setModel(modelo);

    8. Explicacin de los cdigos anteriores:

    hh. Lo que hace cada botn es rellenar el cuadro de lista con una serie de nombres. En elcaso del botn Curso 1, la lista se rellena con los nombres Juan, Mara y Luis,mientras que en el caso del botn Curso 2, la lista se rellena con los nombres Ana,Marta y Jose.

    ii. El contenido de un cuadro de lista es lo que se denomina un modelo. El modelo esun objeto que contiene el listado de elementos de la lista.

    jj. Los modelos de las listas son objetos del tipo DefaultListModel.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    20/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 20

    kk. Lo que hace el programa es crear un modelo. Luego rellena el modelo con datos, yfinalmente asocia el modelo al cuadro de lista. Veamos como se hace todo esto.

    ll. Primero se crea el modelo, a travs de la siguiente instruccin (ser necesario aadir

    el importcorrespondiente, atento a la bombillita):

    DefaultListModel modelo = new DefaultListModel();

    mm. El modelo tiene un mtodo llamado addElementque permite introducir datosdentro de l. As pues usamos este mtodo para aadir los datos al modelo.

    modelo.addElement("Ana");

    modelo.addElement("Marta");

    modelo.addElement("Jose");

    nn. Finalmente asociamos el modelo creado al cuadro de lista de la siguiente forma:

    lstNombres.setModel(modelo);

    oo. As pues, aqu tienes una forma de cambiar el contenido de un cuadro de lista desde elpropio programa.

    9. Prueba a ejecutar el programa. Observa como cuando pulsas cada botn cambia el contenidode la lista:

    10. Ahora aade el siguiente cdigo al evento mouseClickeddel cuadro de lista:

    etiResultado.setText(lstNombres.getSelectedValue().toString());

    Click y cambia el

    listado.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    21/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 21

    Esta instruccin hace que al seleccionar un elemento del cuadro de lista ste aparezca en laetiqueta etiResultado. Recuerda que el mtodo getSelectedValue permite recoger el elementoseleccionado (hay que convertirlo a cadena con toString)

    11. Ejecuta el programa:

    12. Una propuesta. Aada un botn Vaciar llamado btnVaciar. Este botn vaciar el contenidode la lista. Para esto lo nico que tiene que hacer es crear un modelo y, sin introducir ningnvalor en l, asociarlo al cuadro de lista.

    CONCLUSIN

    Un cuadro de lista es un objeto que contiene a su vez otro objeto denominado modelo.

    El objeto modelo es el que realmente contiene los datos de la lista.

    Cuadro de lista Modelo DatosSe puede crear un modelo y luego introducir datos en l. Luego se puede asociar esemodelo a la lista. De esta manera se puede cambiar el contenido de la lista en cualquiermomento.

    Click y aparece

    el elementoseleccionado enla etiqueta.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    22/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 22

    EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA

    1. Realiza un nuevo proyecto.

    2. En la ventana principal debes aadir lo siguiente:

    pp. Un combo llamado cboNumeros.qq. Un botn Pares llamado btnPares.rr. Un botn Impares llamado btnImpares.ss. Una etiqueta con borde llamada etiResultado.

    3. Elimina todos los elementos que contenga el combo. Recuerda, debes usar la propiedadmodel del combo para cambiar sus elementos.

    4. Despus de haber hecho todo esto, tu ventana debe quedar ms o menos as:

    5. En el evento actionPerformeddel botn Pares, programa lo siguiente:

    int i;

    DefaultComboBoxModel modelo = new DefaultComboBoxModel();

    for (i=0;i

  • 8/3/2019 PRACTICAS DE COMPONENTES

    23/44

  • 8/3/2019 PRACTICAS DE COMPONENTES

    24/44

  • 8/3/2019 PRACTICAS DE COMPONENTES

    25/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 25

  • 8/3/2019 PRACTICAS DE COMPONENTES

    26/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 26

    EJERCICIO GUIADO. JAVA: TOGGLEBUTTONS

    1. Realiza un nuevo proyecto.

    2. Crears una ventana como la que sigue teniendo en cuenta lo siguiente:

    yy. Se aadir una etiqueta con el texto Precio Base. Nohace falta cambiarle su nombre.

    zz. Se aadir un cuadro de texto llamado txtPrecioBase.

    aaa. Se crear un botn Calcular, llamadobtnCalcular.

    bbb. Se crear una etiqueta vaca y con bordellamada etiTotal. Use la propiedad fontde esta etiqueta

    para hacer que el texto tenga un mayor tamao.

    ccc. Debes aadir tambintres botones, con el texto Instalacin, Formacin yAlimentacin BD respectivamente.

    Estos botones no son botones normales, son botones del tipoJToggleButton. Usa este tipo de objeto para crearlos.

    Estos botones, se diferencian de los botones normales enque se quedan pulsados cuando se hace un clic sobre ellos, yno vuelven a su estado normal hasta que no se vuelve ahacer clic sobre ellos.

    Los tres botones se llamarn respectivamente:tbtnInstalacion, tbtnFormacion, tbtnAlimentacionBD.

    ddd. Aade finalmente tres etiquetas conteniendo los nmeros 40, 200, 200. Laprimera se llamar etiPrecioInstalacion, la segunda etiPrecioFormacion y la terceraetiPrecioAlimentacionBD.

    3. Prueba el programa y comprueba el funcionamiento de los botones JToggleButton:

  • 8/3/2019 PRACTICAS DE COMPONENTES

    27/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 27

    4. Se pretende que el programa funcione de la siguiente forma:

    eee. El usuario introducir un precio base para el servicio que se vende.fff. A continuacin, si el cliente quiere la instalacin, activar el botn Instalacin.

    ggg. Si el cliente quiere la formacin, activar el botn Formacin.hhh. Si el cliente quiere la Alimentacin de Base de Datos, activar el botnAlimentacin BD.

    iii. Ten en cuenta que el cliente puede querer una o varias de las opciones indicadas.jjj. Finalmente se pulsar el botn calcular y se calcular el precio total. Este precio se

    calcula de la siguiente forma:

    Precio Total = Precio Base + Precio Extras.

    El precio de los Extras depender de las opciones elegidas por el usuario. Por ejemplo,si el usuario quiere Instalacin y Formacin, los extras costarn 240 euros.

    5. As pues, se programar el actionPerformeddel botn Calcular de la siguiente forma:

    Observa como al pulsar los

    JToggledButton estos se quedanpulsados.

    Si se vuelven a activar se despulsan.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    28/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 28

    double precio_base;

    double precio_instal; //precio instalacin

    double precio_for; //precio formacion

    double precio_ali; //precio alimentacion

    //Recojo datos desde la ventana:

    precio_base = Double.parseDouble(txtPrecioBase.getText());

    precio_instal = Double.parseDouble(etiPrecioInstalacion.getText());

    precio_for = Double.parseDouble(etiPrecioFormacion.getText());

    precio_ali = Double.parseDouble(etiPrecioAlimentacionBD.getText());

    //Ahora que tengo los datos, puedo hacer clculos.

    //Al precio base se le van aadiendo precio de extras

    //segn estn o no activados los JToggleButtons

    double precio_total;

    precio_total = precio_base;

    if (tbtnInstalacion.isSelected()) { //Si se seleccion instalacin

    precio_total = precio_total+precio_instal;

    }

    if (tbtnFormacion.isSelected()) { //Si se seleccion formacin

    precio_total = precio_total+precio_for;

    }

    if (tbtnAlimentacionBD.isSelected()) { //Si se seleccion Alimentacin BD

    precio_total = precio_total+precio_ali;

    }

    //Finalmente pongo el resultado en la etiqueta

    etiTotal.setText(precio_total+" ");

    6. Veamos una explicacin del cdigo:

    kkk. Primero se crean variables doubles (ya que se admitirn decimales) para poderhacer los clculos.

    lll. Se extraern los datos de la ventana y se almacenarn en dichas variables. Para ello,hay que convertir desde cadena a double:

    precio_base = Double.parseDouble(txtPrecioBase.getText());

    precio_instal = Double.parseDouble(etiPrecioInstalacion.getText());

    precio_for = Double.parseDouble(etiPrecioFormacion.getText());

    precio_ali = Double.parseDouble(etiPrecioAlimentacionBD.getText());

    mmm. Una vez obtenidos los datos en forma numrica, ya se pueden hacer clculoscon ellos. El programa declara una nueva variable precio_totaldonde se introducir elresultado. En primer lugar se introduce en esta variable el precio base.

    double precio_total;

    precio_total = precio_base;

  • 8/3/2019 PRACTICAS DE COMPONENTES

    29/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 29

    nnn. A continuacin se le suma al precio_total los precios de los extras si el botncorrespondiente est seleccionado. Esto se hace a travs de if. Por ejemplo, parasumar el extra por instalacin:

    if (tbtnInstalacion.isSelected()) { //Si se seleccion instalacinprecio_total = precio_total+precio_instal;

    }

    Esto significa: Si el botn instalacin est seleccionado, aade al precio total el preciopor instalacin

    Observa el uso del mtodo isSelectedpara saber si el botn tbtnInstalacion ha sidoseleccionado.

    ooo. Finalmente el resultado se muestra en la etiqueta de total.

    7. Comprueba el funcionamiento del programa

    8. Supongamos que normalmente (en el 90 por ciento de los casos) la instalacin es solicitadapor el usuario. Podra ser interesante que el botn Instalacin ya saliera activado al ejecutarseel programa. Para ello, aade en el Constructorla siguiente lnea.

    tbtnInstalacion.setSelected(true);

    Esta lnea usa el mtodo setSelectedpara activar al botn tbtnInstalacin.

    Comprueba esto ejecutando el programa.

    Introduce una cantidad (usa el puntopara los decimales)

    Selecciona los extras que desees.

    Pulsa Calcular y obtendrs el resultado.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    30/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 30

    CONCLUSIN

    Los JToggleButton son botones que pueden quedarse pulsados.

    A travs del mtodo isSelected podemos saber si un JToggleButton est seleccionado.

    Tambin puedes usar el mtodo setSelected para seleccionar o no un botn de este tipo.

    Realmente, estos botones no suelen ser muy usados, ya que pueden ser sustituidos porCuadros de Verificacin (JCheckBox) que son ms conocidos.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    31/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 31

    EJERCICIO GUIADO. JAVA: SLIDERS

    Introduccin a los JSliders

    La clase JSlider permite crear objetos como el siguiente:

    Estos elementos tienen un pequeo recuadro que se puede arrastrar a derecha o izquierda. Segn laposicin del recuadro, el JSlider tendr un valor concreto.

    El JSlider se puede configurar para que muestre los distintos valores que puede tomar:

    Tambin se puede configurar de forma que los valores mnimo y mximo sean distintos:

    El valor que tiene un JSlider es el valor al que apunta el recuadro del JSlider. En la imagen anterior, elJSlider tiene un valor de 85.

    Se ver a continuacin las caractersticas ms interesantes de los JSlider y como programarlos.

    Ejercicio guiado

    1. Crea un nuevo proyecto.

    2. Aade en l un JSLider. Su nombre ser slDeslizador.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    32/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 32

    3. Aade una etiqueta con borde. Su nombre ser etiValor.

    4. La ventana tendr el siguiente aspecto:

    5. Un JSlider tiene un valor mnimo y un valor mximo. El valor mnimo es el valor que tienecuando el recuadro est pegado a la parte izquierda, mientras que el valor mximo es el valorque tiene cuando el recuadro est pegado a la parte derecha.

    El valor mnimo y mximo del JSlider se puede cambiar. Busca las propiedades maximumyminimumdel JSlider y asigna los siguientes valores:

    Mximo: 500Mnimo: 100

    6. Se puede asignar un valor inicial al JSlider a travs de su propiedad value. Busque estapropiedad y asigne un valor de 400. Observe donde se sita el recuadro del JSlider.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    33/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 33

    7. Se puede mejorar el JSlider definiendo unas divisiones (medidas) Por ejemplo, haremos quecada 50 unidades aparezca una divisin. Para ello use la propiedad majorTickSpacingyasigne un 50.

    8. Esto, en realidad, no produce ningn cambio en el JSlider. Para que las divisiones se vean, esnecesario que active tambin la propiedad paintTicks. Esta propiedad pintar divisiones en elJSlider:

    9. An se puede mejorar la presentacin del JSlider, si hacemos que aparezca el valor de cadadivisin. Para ello debes activar la propiedad paintLabel.

    10. Ejecuta el programa para ver el funcionamiento del Deslizador y su aspecto. Debe ser

    parecido al siguiente:

    Medidas cada 50unidades

  • 8/3/2019 PRACTICAS DE COMPONENTES

    34/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 34

    11. Bien. Ahora se pretende que cuando el usuario arrastre el deslizador, en la etiqueta aparezca

    el valor correspondiente. Para ello tendr que programar el evento stateChangeddel JSlider.

    El evento stateChangedsucede cuando el usuario arrastra el recuadro del deslizador.

    En este evento programe lo siguiente:

    etiValor.setText("El valor es: "+slDeslizador.getValue());

    12. Ejecute el programa y observe lo que sucede cuando arrastra el deslizador.

    13. La explicacin del cdigo es la siguiente:

    a. El mtodo getValuedel deslizador nos devuelve el valor que tiene actualmente eldeslizador.

    b. Este valor es concatenado a la cadena El valor es: y es mostrado en la etiqueta atravs del conocido setText.

    14. A continuacin se mencionan otras propiedades interesantes de los JSlider que puedes probarpor tu cuenta:

    orientation

    Movemos aqu.

    Y aparece el valor

    correspondiente aqu.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    35/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 35

    Permite cambiar la orientacin del JSlider. Podras por ejemplo hacer que el JSlider estuvieraen vertical.

    minorTickSpacing

    Permite asignar subdivisiones a las divisiones ya asignadas. Prueba por ejemplo a asignar un10 a esta propiedad y ejecuta el programa. Observa las divisiones del JSlider.

    snapToTicksCuando esta propiedad est activada, no podrs colocar el deslizador entre dos divisiones. Esdecir, el deslizador siempre estar situado sobre una de las divisiones. Prueba a activarla.

    paintTrackEsta propiedad permite pintar o no la lnea sobre la que se desliza el JSlider. Prueba adesactivarla.

    CONCLUSIN

    Los JSliders son objetos deslizadores. Permiten elegir un valor arrastrando un pequeorecuadro de derecha a izquierda o viceversa.

    El valor de un JSliders puede ser obtenido a travs de su mtodo getValue.

    Si quieres programar el cambio (el arrastre) en el deslizador, tienes que programar el eventollamado stateChanged.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    36/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 36

    EJERCICIO GUIADO. JAVA: SPINNER

    Introduccin a los JSpinner

    La clase JSpinner permite crear cuadros como el siguiente:

    Son elementos muy comunes en los programas. A travs de los dos botones triangulares se puedehacer que el valor del cuadro aumente o disminuya. Tambin se puede escribir directamente un valordentro del cuadro.

    Ejercicio guiado1. Crea un nuevo proyecto.

    2. Aade en l un JSpinner. Su nombre ser spiValor.

    3. Aade una etiqueta con borde. Su nombre ser etiValor.

    4. La ventana tendr el siguiente aspecto:

    5. Interesa que cuando cambie el JSpinner (ya sea porque se pulsaron los botones triangulares oporque se escribi dentro) aparezca el valor correspondiente dentro de la etiqueta. Para ello,tendr que programar el evento stateChangeddel JSpinner.

    En el evento stateChangedintroduzca el siguiente cdigo:

    etiValor.setText("El valor es: "+spiValor.getValue().toString());

  • 8/3/2019 PRACTICAS DE COMPONENTES

    37/44

  • 8/3/2019 PRACTICAS DE COMPONENTES

    38/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 38

    e. En la tercera lnea se define como valor mnimo del modelo el 0, a travs de un mtodo

    llamado setMinimum.

    f. Finalmente se asigna el modelo creado al JSpinner.

    g. Este cdigo, en definitiva, har que el JSpinner muestre los valores comprendidosentre 0 y 10.

    11. Prueba el programa y observa los valores que puede tomar el JSpinner.

    12. Vamos a aadir otra mejora. Cambie el cdigo del constructor por este otro. (Observa quesolo se ha aadido una lnea):

    SpinnerNumberModel nm = new SpinnerNumberModel();

    nm.setMaximum(10);

    nm.setMinimum(0);

    nm.setStepSize(2);

    spiValor.setModel(nm);

    13. La lnea aadida es:

    nm.setStepSize(2);

    Esta lnea usa un mtodo del modelo del JSpinner que permite definir el valor de cambio delJSPinner. Dicho de otra forma, esta lnea hace que los valores del JSpinner salten de 2 en 2.

    14. Ejecuta el programa de nuevo y observa como cambian los valores del JSpinner.

    15. El modelo del JSpinner tiene tambin un mtodo llamado setValueque permite asignar unvalor inicial al modelo. Pruebe a usar este mtodo para hacer que el JSpinner muestre desdeel principio el valor 4.

    Ahora los valores estncomprendidos entre 0 y10

  • 8/3/2019 PRACTICAS DE COMPONENTES

    39/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 39

    CONCLUSIN

    Los JSpinners son objetos que permiten seleccionar un nmero, ya sea escribindolo en elrecuadro, o bien a travs de dos botones triangulares que permiten aumentar o disminuir el

    valor actual.

    Los JSpinners son objetos con modelo. Es decir, este objeto contiene a su vez otro objetomodelo que es el que realmente contiene los datos.

    Datos Modelo JSpinner

    Para definir el contenido del JSpinner es necesario crear un modelo del tipoSpinnerNumberModel. Se le asigna al modelo los nmeros deseados, y finalmente se une elmodelo con el JSpinner.

    El objeto modelo del JSpinner permite definir el valor mnimo y el valor mximo, as como el

    intervalo de aumento de los valores.

  • 8/3/2019 PRACTICAS DE COMPONENTES

    40/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 40

    EJERCICIO GUIADO. JAVA: SCROLLBARS

    Introduccin a las JscrollBars (Barras de desplazamiento)

    La clase JScrollBar permite crear barras de desplazamiento independientes, como la que se muestraa continuacin:

    La barra tiene un valor mnimo, que se consigue haciendo que el recuadro de la barra dedesplazamiento est pegado a la parte izquierda.

    Cuando se pulsa algunos de los botones de la barra de desplazamiento, el valor de la barra seincrementa / decrementa poco a poco. A este incremento / decremento lo llamaremos incrementounitario.

    Cuando se pulsa directamente sobre la barra, el valor de la barra se incrementa / decrementa enmayor cantidad. A este incremento / decremento lo llamaremos incremento en bloque.

    Valor mnimo

    Decrementa el valor poco apoco (incremento unitario)

    Incrementa el valor poco a poco(incremento unitario)

    Al pulsar directamente sobre la barrase decrementa en mayor cantidad(incremento en bloque)

    Al pulsar directamente sobre labarra se incremente en mayorcantidad (incremento en bloque)

  • 8/3/2019 PRACTICAS DE COMPONENTES

    41/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 41

    Ejercicio guiado

    1. Para comprender mejor el funcionamiento de las barras de desplazamiento se crear unproyecto nuevo.

    2. Aade en el proyecto una barra de desplazamiento (JScrollBar) y llmala desValor.

    3. La barra de desplazamiento aparecer en vertical. Use la propiedad de la barra llamadaOrientationpara hacer que la barra aparezca en posicin horizontal.

    4. Aade tambin una etiqueta con borde y llmala etiValor.

    5. La ventana debe quedar ms o menos as:

    6. Interesa que cuando el usuario cambie de alguna manera la barra de desplazamiento, en laetiqueta aparezca el valor de la barra.

    Para ello, se debe programar el evento AdjustmentValueChangedde la barra dedesplazamiento.

    En este evento programa lo siguiente:

    etiValor.setText("El valor es: "+desValor.getValue());

  • 8/3/2019 PRACTICAS DE COMPONENTES

    42/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 42

    7. Como ves, se coloca en la etiqueta el valor de la barra. El valor de la barra se obtiene con elmtodo getValue. Ejecuta el programa para ver su funcionamiento.

    8. Sigamos estudiando el programa. Se pide que cambies las siguientes propiedades de tubarra:

    Minimum Permite asignar el valor mnimo de la barra. Escribe un 50Maximum Permite asignar el valor mximo de la barra. Escribe un 150

    UnitIncrement Permite cambiar el incremento unitario. Escribe un 2.

    BlockIncrement Permite cambiar el incremento en bloque. Escribe un 20.

    VisibleAmount Permite cambiar el ancho del recuadro de la barra. Escribe un 5.

    Pulsa aqu y observa

    como el valor cambiapoco a poco

    Pero si pulsas aqu elvalor cambia en mayorcantidad

    5

  • 8/3/2019 PRACTICAS DE COMPONENTES

    43/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    PROGRAMACION ORIENTADA A OBJETO 43

    9. Ejecuta ahora el programa y comprueba su funcionamiento:

    Si pulsas aqu, el valorse incrementa de 2 en2, ya que elincremento unitarioseconfigur en 2.

    Si pulsas aqu, el valorse incrementa de 20en 20, ya que elincremento en bloquees de 20.

    Si llevas la barra dedesplazamiento al mnimo, suvalor ser de 50, ya que seconfigur as con la propiedadminimum

    Observa lo que sucede cuando llevasla barra de desplazamiento al mximo:aparece un valor de 145, cuando elvalor mximo que asignamos fue de150 por qu?

  • 8/3/2019 PRACTICAS DE COMPONENTES

    44/44

    UNIDADES TECNOLGICAS DE SANTANDERINGENIERIA DE TELECOMUNICACIONES

    10. Tal como se ha indicado anteriormente, pasa algo raro con la barra de desplazamiento cuandoesta est al mximo. Se esperaba que alcanzara el valor 150, y sin embargo, el valor mximo

    alcanzado fue de 145. La explicacin es la siguiente:

    * Nuestra barra tiene un valor mximo de 150.

    ** Sin embargo, el valor de la barra viene indicado por el lado izquierdo del recuadro interno.

    *** Como el recuadro interno tiene un ancho definido a travs de la propiedad VisibleAmount,el valor mximo que la barra puede alcanzar es de:

    Valor = ValorMximo Ancho del recuadro.

    Es decir,

    Valor alcanzable = 150 5 = 145

    11. A travs del mtodo setValuede la barra de desplazamiento se puede asignar un valor iniciala la barra. Programe en el constructor de su programa lo necesario para que la barra dedesplazamiento tenga un valor de 70 al empezar el programa.

    CONCLUSIN

    Las JScrollBars son barras de desplazamiento independientes. Al igual que los JSliders, lasJScrollBars tienen un valor concreto, que puede ser obtenido a travs del mtodo getValue.

    Entre las caractersticas programables de una barra de desplazamiento, tenemos lassiguientes:

    - Valor mnimo (propiedad Minimum)- Valor mximo (propiedad Maximum)- Incremento unitario (propiedad UnitIncrement)- Incremento en bloque (propiedad BlockIncrement)- Tamao del recuadro de la barra (propiedad VisibleAmount)

    Valor mximo (150) *

    Valor de la barra (145) **

    5 ***