Fundamentos Teóricos-Prácticas 1y2 PDF
Document Details
Uploaded by Deleted User
Escuela de Ingeniería Informática Oviedo
Ana Belén Martínez Prieto, Mª del Carmen Suárez Torrente
Tags
Summary
These slides from Comunicación Persona Máquina, E. U. I. Informática Oviedo cover various aspects of GUI design in Java, including components, layouts, menus, dialogues in detail with examples.
Full Transcript
Comunicación Persona Máquina. E. U. I. Informática Oviedo Fundamentos Teóricos-Práctica 5 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Otros Componentes Menus (JMenuBar) Listas (J...
Comunicación Persona Máquina. E. U. I. Informática Oviedo Fundamentos Teóricos-Práctica 5 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Otros Componentes Menus (JMenuBar) Listas (JList) Deslizadores (JSlider) Spinners (JSpinner) 2 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menús Muestran una lista de opciones (menú ítems) que pueden ser recorridas o seleccionadas por el usuario Pueden ser: Drop-down (menú cuyos títulos aparecen en una barra de menú ) Submenu Contextuales 3 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Barras de Menú (JMenuBar) Aparecen en la parte superior de una ventana primaria y contienen títulos de menú que describen el contenido de cada menú Los títulos del menú generalmente aparecen como texto pero es posible que usen un gráfico o un gráfico con texto Hay que asegurarse de incluir mnemónicos para cada título de menú en la barra Hay que emplear palabras simples para los títulos de menú 4 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menus drop-down Un menú drop-down aparece cuando el usuario selecciona un título de menú en la barra de menú Las barras de menú contienen todos los menús drop-down y submenús de la aplicación 5 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Submenus Son menús que los usuarios abren al hacer click o deslizar el ratón sobre un elemento de menú También incluyen mnemotécnicos y shortcuts Hay que evitar el uso de un segundo nivel de submenús Si hay que presentar un conjunto de opciones grande o complejo será conveniente emplear un cuadro de diálogo 6 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menus Contextuales (JPopupMenu) También llamados menús pop-up Ofrecen elementos de menú que son aplicables al objeto o región en la que está localizado el puntero del ratón 7 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menús Contextuales (II) Incluyen también mnemotécnicos y shortcuts, que además deben ser coincidentes con las correspondientes opciones empleadas en el menú drop-down. Hay que asegurarse de que las características que se presentan en un menú contextual están además disponibles en lugares más visibles y accesibles, como por ejemplo en menús drop-down. 8 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Elementos de Menú (MenuItems) Composición y Creación Un ítem de menú (menú ítem) representa una orden u opción a realizar (copiar, cortar, abrir,...) Los ítems de los menús deben ser breves y aparecer en una única línea Hay que incluir mnemotécnicos para todos los elementos de menú Hay que ofrecer shortcuts para los ítems de menú empleados más frecuentemente Hay que emplear el mismo shortcut si el mismo elemento de menú aparece en varios menús. 9 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Elementos de Menú Composición y Creación (II) Se deben emplear (...) para indicar que el comando detallado por el elemento de menú necesita más información para poder ser completado. Ej. Guardar como... No deben emplearse (...) para indicar que aparecerá otra ventana secundaria o de utilidad. Ej. Propiedades 10 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Elementos de Menu Disponibilidad Si una característica de una aplicación no está disponible en una ventana pero los usuarios pueden hacer algo para hacerla disponible, hay que poner el elemento de menú como no disponible (enabled->false) Si todos los ítems en un menú no están actualmente disponibles hay que mantener el título de menú original como disponible de forma que igualmente se puedan ver las opciones que contiene. 11 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Elementos de Menú Organización Para ayudar al usuario a localizar opciones y a entender el conjunto de posibilidades hay que emplear separadores Si el número de elementos del menú es (o puede llegar a ser) muy grande hay que emplear un layout específico (grid layout) de forma que se puedan mostrar las opciones en múltiples columnas 12 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Checkbox Menu Items Se emplean para presentar a los usuarios elementos de menú con opciones no exclusivas Hay que utilizarlos con cuidado, ya que cuando el usuario selecciona una opción el menú se cierra. Para elegir otro ítem el usuario debe reabrir el menú. Por tanto, si los usuarios tienen varias opciones y es previsible que seleccionen más de una, es conveniente colocarlas en un cuadro de diálogo. 13 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Radio Button Menu Items Se emplean para presentar a los usuarios elementos de menú con opciones exclusivas Para indicar que los radio botones son parte de un conjunto hay que agruparlos y emplear separadores que permitan distinguirlos de otros elementos de menú Al igual que con los checkbox menu items hay que utilizarlos con precaución. 14 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menús comunes Organización Hay menús drop-down, tales como Archivo, Edición y Ayuda que se utilizan en muchas aplicaciones Si la aplicación necesita estos menús, el orden de colocación es: Archivo, Edición,Ver, Formato y Ayuda Si es necesario añadir nuevos menús se harán entre Formato y Ayuda 15 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menús comunes Archivo (o Primer elemento) Archivo Muestra opciones que se aplican al documento completo o a la aplicación como un todo. Si la aplicación no maneja ficheros a esta primera opción se le puede dar otro nombre siempre que corresponda al tipo de objeto que representa la aplicación. Ejs. Proyecto, Juego,.. La opción de Salir es siempre la última de este menú drop-down y finaliza la aplicación Si hay más opciones, antes de Salir tiene que haber separador 16 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Menús comunes Ayuda Proporciona acceso (en línea) a información sobre las características de una aplicación. Proporciona acceso al cuadro Acerca de, que muestra información básica sobre la aplicación. El Acerca de incluye: Nombre del producto Versión Logo de la compañía Logo del producto Datos de autoría … Antes del “Acerca de” siempre hay un separador 17 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Layouts Indican la forma de organizar los componentes dentro de un contenedor, determinando el tamaño y la posición de los mismos. Se debe elegir el layout que mejor se adecúe a las necesidades de la aplicación a desarrollar Para utilizar un layout: Crear el contenedor Establecer el layout Agregar los componentes al contenedor 18 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Tipos de Layouts Los más importantes son los siguientes: FlowLayout BorderLayout CardLayout GridLayout BoxLayout GridBagLayout Por defecto: JFrame, JDialog BorderLayout JPanel, JScrollPane FlowLayout 19 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente GridLayout El controlador de posicionamiento se crea con un determinado número de filas y columnas. Los componentes se sitúan en las celdas de forma secuencial de izquierda a derecha y de arriba abajo. El tamaño de las celdas es idéntico. Cada componente ocupa todo el espacio disponible dentro de la celda. Propiedades: hgap, vgap colums, rows 20 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente BoxLayout Permite organizar los componentes en una línea horizontal o vertical. Ejemplo de uso: JToolBar No permite dejar espacios entre los componentes. Propiedades: Axis: X_AXIS,Y_AXIS 21 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Comunicación Persona Máquina. E. U. I. Informática Oviedo Fundamentos Teóricos – Práctica 4 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Principales tipos de contenedores Marco (JFrame) Cuadro de Diálogo (JDialog) Panel (JPanel) Panel de Scroll (JScrollPane) Panel de Pestañas (JTabbedPane) 2 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Panel de Scroll (JScrollPane) Es un contenedor especializado que ofrece barras de desplazamiento (scroll) horizontales y verticales y que permiten a los usuarios cambiar la parte visible del contenido de las ventanas Se puede especificar que las barras de Scroll (horizontales y verticales) aparezcan siempre (ALWAYS) o bien solo cuando sean necesarias (AS_NEEDED) Propiedad: verticalScrollBarPolicy y horizontalScrollBarPolicy Lo normal es que aparezcan cuando sean necesarias 3 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Componentes para Texto Permiten a los usuarios ver y editar texto en una aplicación Algunos componentes: Etiquetas (JLabel) Campos de texto (JText Field) Campos para contraseña (JPassword Field) Areas de texto (JText Area) 4 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Text Area (JTextArea) Es un componente que proporciona un espacio en el que los usuarios pueden ver, teclear y editar múltiples líneas de texto. Emplea fuentes, tamaño y estilo simple. Para que aparezcan las barras de Scroll hay que colocar el Text Area dentro de un Scroll Pane. Propiedades lineWrap->True // cuando se llegue al borde escribiendo, salte de línea wrapStyleWord-> True //rellena las líneas con espacios en blanco para justificar el texto. Métodos setText //añade texto sustituyendo al anterior, si lo hubiera append // añade texto al final del área de texto insert // añade texto en una posición específica 5 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Operaciones con Teclado Es importante facilitar una alternativa al ratón como medio de interacción: Facilidad para los usuarios que provengan de otros entornos. Facilidad a los usuarios con necesidades especiales. Continuidad ante fallos o inexistencia del ratón. Recomendaciones para el uso de operaciones de teclado: Empleo de Mnemotécnicos (o mnemónicos). Empleo de Shortcuts. Navegación y activación por teclado. 6 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Mnemónicos o Mnemotécnicos (I) Es una letra subrayada que aparece típicamente en un título o en un elemento de menú, en el texto de un botón, etc. La letra subrayada indica al usuario como activar el comando equivalente: “ Presionar la tecla ALT y el carácter subrayado” 7 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Mnemónicos (II) Algunas propiedades y métodos relacionados con los Mnemotécnicos mnemonic para componentes que los admin¡tan directamente (como botones, checkboxes, radio botones, botones de conmutación, títulos y elementos de menú…) displayedMnemonic, para etiquetas que acompañan a componentes que no admiten mnemónico (comboboxes, campos de texto…) A la hora de asignar mnemónicos hay que seguir las siguientes recomendaciones: Evitar conflictos. Elegir la primera letra del elemento de menú. Si la primera letra entra en conflicto con la de otro elemento de menú hay que elegir una consonante prominente (T,X,Z,P,G,K...) Ej. Para cortar la t (Cortar) Si la primera letra entra en conflicto y también entra el empleo de una consonante prominente, entonces hay que elegir una vocal prominente (e, o, a) 8 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Shortcuts (Atajos) Es una secuencia de teclas que activan una opción de menú. La combinación de teclas está constituida por: El modificador Control (y opcionalmente otro modificador como Shift) Y un carácter o tecla de función Deben ser consistentes con los ShortCuts empleados en la plataforma Ejemplo Para copiar Ctrl+C Para imprimir Ctrl+P ... 9 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Foco de Teclado Llamado también “foco de entrada” Indica la ventana activa o el componente donde tendrá efecto la siguiente pulsación del usuario. Cuando se abre una ventana por primera vez hay que tener asignado el foco al componente con el que el usuario interactuará en primer lugar. Por lo general, es el componente que aparece en la esquina superior izquierda de la ventana. Esta asignación es especialmente importante para aquellas personas que sólo emplean el teclado para navegar por la aplicación (ej. usuarios con problemas motores) 10 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Navegación y Activación por Teclado La navegación y activación por teclado permite a los usuarios mover el foco desde un componente de la interfaz a otro por medio del teclado. Tab-> mueve el foco entre los componentes Shitf-Tab-> mueve el foco en la dirección inversa Hay que asegurarse que todas las funciones de la aplicación estén accesibles mediante teclado 11 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Comunicación Persona Máquina. E. U. I. Informática Oviedo Fundamentos teóricos – Práctica 3 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Principales tipos de contenedores Marco (JFrame) Cuadro de Diálogo (JDialog) Panel (JPanel) Panel de Scroll (JScrollPane) Panel de Pestañas (JTabbedPane) 2 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Diálogos (JDialog) Generalmente se emplean para recoger datos del usuario y mostrar mensaje de advertencia. Derivan de algún otro componente. No pueden contener barra de menús. Los diálogos pueden ser Modales. Impiden que los usuarios interactúen con la aplicación hasta que el diálogo sea cerrado, sin embargo, no impiden la interacción con otras aplicaciones mientras el diálogo está abierto. No modales. No impiden a los usuarios interactuar con la aplicación con la que están, o con otras, mientras el cuadro esté abierto. 3 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente JDialog: Diálogos definidos por el usuario Elementos de un Diálogo Título Elementos de la IU Fila de Botones 4 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Características Generales El título del cuadro de diálogo, mostrado en la barra del título, debe tener la forma: “Nombre de la aplicación: Título del cuadro” Hay que incluir mnemotécnicos para todos los elementos excepto el botón por defecto y el botón de cancelación Al abrir un cuadro de diálogo el foco debe aparecer sobre el componente sobre el que se espera actuar en primer lugar 5 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Orden de Tabulación El orden de tabulación debería concordar con el orden de lectura (del último pasar al primero) 6 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Situación de los Botones de Comando en el Cuadro de Diálogo Los botones que se aplican a todo el cuadro de diálogo deben colocarse en una fila en la parte inferior del cuadro de diálogo y alineados a la derecha Si se emplea botón de Ayuda, para mostrar información adicional sobre el cuadro de diálogo, éste debe ser el último (el de más a la derecha) 7 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botón por Defecto en un Cuadro de Diálogo Se activa cuando el usuario presiona Enter y desencadena la ejecución de las acciones asociadas a dicho botón (las realizadas más a menudo). Una opción no segura (que ocasione la pérdida de datos) nunca puede ser el botón por defecto. El botón por defecto no necesita tener el foco cuando el usuario presiona Intro Si el cuadro de diálogo tiene botón por defecto éste debe ser el primer botón de comando en el grupo de botones del cuadro. El botón por defecto no lleva mnemónico No es obligatorio tener un botón por defecto en cada cuadro de diálogo En java: getRootPane().setDefaultButton(nombreBoton); 8 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botón de Cancelación en un Cuadro de Diálogo Se activa al pulsar la tecla Escape y provoca la ejecución de las acciones asociadas al botón identificado como de cancelación A diferencia del anterior es necesario implementar este comportamiento, es decir, no existe una única instrucción que permita indicar de forma sencilla cual es el botón de cancelación en un diálogo. Solución: comprobar en cada momento si la tecla pulsada es Escape y si es así invocar el código asociado al botón de cancelación (gestión de evento de teclado) 9 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Diálogos (II) En Swing hay varias clases que soportan los diálogos estándar: JOptionPane JColorChooser JFileChooser Todos ellos son modales 10 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente JOptionPane Permite crear y adaptar varias clases de diálogos, especificando por ejemplo los iconos (propio, ninguno o uno de los cuatro estándar), el título y texto de los diálogos y el texto de los botones. Se puede especificar también donde aparecerá sobre la pantalla. Los iconos estándar son: question, information, warning y error Métodos estáticos principales: showMessageDialog showConfirmDialog showInputDialog y showOptionDialog // permite mayor personalización especificando por ejemplo el título de los botones 11 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente JOptionPane.showMessageDialog Muestra un cuadro de diálogo modal con un solo botón etiquetado como ‘Aceptar’ Permite especificar el mensaje, el icono y el título que muestra el diálogo Ejemplos de uso: JOptionPane.showMessageDialog(this, “Mensaje”); JOptionPane.showMessageDialog(this,”Mensaje”,”Titulo”,JOptionPane.WARNING_MESSAGE); JOptionPane.showMessageDialog(this,”Mensaje”,”Titulo”,JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(this,”Mensaje”,”Titulo”,JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(this,”Mensaje”,”Titulo”,JOptionPane.QUESTION_MESSAGE); JOptionPane.showMessageDialog(this,”Mensaje”,”Titulo”,JOptionPane.PLAIN_MESSAGE); Especifica el componente padre (parent). Por lo general siempre es un frame (this) y por tanto el cuadro de diálogo siempre aparece desplegado sobre el centro del frame. Sin embargo, se puede especificar como parent algún otro componente que esté dentro del frame (ej. jButton) y esto hará que el cuadro de diálogo se despliegue centrado sobre ese componente. 12 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente JOptionPane.showConfirmDialog Muestra un cuadro de diálogo modal para pedir una confirmación al usuario Permite especificar el mensaje, el icono y el título que muestra el diálogo y el número de botones (dentro de un conjunto fijo de ellos) Ejemplos de uso: int resp = JOptionPane.showConfirmDialog(this, “Mensaje”); int resp = JOptionPane.showConfirmDialog(this,”Mensaje”,”Titulo”, JOptionPane.YES_NO_OPTION); int resp = JOptionPane.showConfirmDialog(this,”Mensaje”,”Titulo”, JOptionPane.YES_NO_CANCEL_OPTION); int resp = JOptionPane.showConfirmDialog(this,”Mensaje”,”Titulo”, JOptionPane.OK_CANCEL_OPTION); int resp = JOptionPane.showConfirmDialog(this,”Mensaje”,”Titulo”, JOptionPane.DEFAULT_OPTION); if (resp == JOptionPane.YES_OPTION) {... } 13 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente JOptionPane.showInputDialog Muestra un cuadro de diálogo modal que toma una cadena introducida por el usuario. Este cuadro debe emplearse con bastante prudencia, ya que la validación del dato sólo se puede realizar cuando se cierra el cuadro de diálogo. Ejemplos de uso: String valor = JOptionPane.showInputDialog(this, mensaje); String valor = JOptionPane.showInputDialog(this,”Mensaje”,”Titulo”,JOptionPane.PLAIN_MESSAGE); String valor = JOptionPane.showInputDialog(this,”Mensaje”,”Titulo”,JOptionPane.INFORMATION_MESSAGE); String valor = JOptionPane.showInputDialog(this,”Mensaje”,”Titulo”,JOptionPane.WARNING_MESSAGE); String valor = JOptionPane.showInputDialog(this,”Mensaje”,”Titulo”,JOptionPane.QUESTION_MESSAGE); String valor = JOptionPane.showInputDialog(this,”Mensaje”,”Titulo”,JOptionPane.ERROR_MESSAGE); 14 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Otros Componentes Menus (JMenuBar) Listas (JList) Deslizadores (JSlider) Spinners (JSpinner) 15 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Spinner (JSpinner) Permiten seleccionar un valor entre un rango de opciones posibles. Los valores cambian al pulsar los botones de desplazamiento.También se puede introducir un valor directamente. Este componente tiene un modelo asociado para la gestión de los datos en el que se indican los valores inferior y superior y el incremento entre valores cada vez que el usuario interactúe con el spinner. Estos valores pueden ser cambiados en tiempo de ejecución para adaptar el modelo del spinner a los datos que se deseen recoger en el mismo. 16 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Layouts Indican la forma de organizar los componentes dentro de un contenedor, determinando el tamaño y la posición de los mismos. Se debe elegir el layout que mejor se adecúe a las necesidades de la aplicación a desarrollar Para utilizar un layout: Crear el contenedor Establecer el layout Agregar los componentes al contenedor 17 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Tipos de Layouts Los más importantes son los siguientes: FlowLayout BorderLayout CardLayout GridLayout BoxLayout GridBagLayout Por defecto: JFrame, JDialog BorderLayout JPanel, JScrollPane FlowLayout 18 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente FlowLayout Es el más simple y el que se utiliza por defecto en todos los paneles. Los componentes añadidos a un contenedor con FlowLayout se disponen una o más filas, de izquierda a derecha y de arriba abajo. Se crean nuevas filas si es necesario. Si se modifica el tamaño del contenedor los componentes se redistribuyen. Se puede seleccionar la alineación de los componentes respecto al contenedor y el espaciado entre los mismos. Propiedades: alignment: izquierda, derecha, centro horizontalgap, verticalGap 19 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Comunicación Persona Máquina. E. U. I. Informática Oviedo Fundamentos Teóricos-Prácticas 1 y 2 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Principales tipos de contenedores Marco (JFrame) Cuadro de Diálogo (JDialog) Panel (JPanel) Panel de Scroll (JScrollPane) Panel de Pestañas (JTabbedPane) 2 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Marco (JFrame) Ventana que no está contenida dentro de otra ventana. Representa la ventana principal de una aplicación con IGU. Tiene borde, título, menú de control, botones para maximizar y minimizar, controles para redimensionar. Puede contener barra de menús. Los componentes que formarán parte de la ventana han de situarse sobre un panel, no directamente sobre el JFrame. 3 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Panel (JPanel) Es un contenedor que agrupa componentes dentro de una ventana u otro panel Los ‘layouts managers’ o gestores de contenido permiten posicionar visualmente los componentes dentro de ellos Se suelen emplear también para poner bordes a grupos de componentes (ej. Radio Botones) Algunos Métodos: getComponentCount () : número de componentes en el panel getComponents() : devuelve un array con referencias a los componentes que contiene el panel 4 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Componentes básicos Botones Comando (Command) Conmutación (Toggle) Cajas de chequeo (Check Boxes) Radio (Radio Buttons) Combo Box 5 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botones de comando (JButton) (I) Botón que puede contener texto, gráficos o ambos. Generalmente se emplea una única palabra para identificar la acción que representa el botón. Los botones que llevan texto deben tener asignado un mnemónico, salvo que sean los botones por defecto y de cancelación. Para los que no llevan texto, conviene asociarles tooltips que describan su nombre o función. Proporcionan información (en forma de descripción corta) acerca de un componente cuando el usuario se detiene sobre él Deben estar activos por defecto, pero hay que proporcionar al usuario una manera de desactivarlos, por ejemplo, presentando una opción (checkbox) en un cuadro de diálogo de propiedades o preferencias 6 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botones de comando (II) Los botones que sólo contienen texto, éste debe estar centrado en el botón Los botones que contienen texto y gráficos: El texto debe ir colocado después (a la derecha) o debajo del gráfico Siguen siendo necesarios los mnemónicos en el texto (excepto en los botones por defecto y de cancelación) 7 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botones de comando (III) Si el usuario debe visualizar un cuadro de diálogo para finalizar la especificación de una acción iniciada con un botón de comando se añaden... después del texto del botón. Se necesita más información para completar la ejecución 8 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botones de conmutación (JToggleButton) Un botón de conmutación representa dos estados: on y off. Al igual que un botón de comando puede incluir texto y gráficos. El gráfico y el texto han de ser los mismos independientemente de que el botón esté on u off. Estos botones pueden emplearse para representar opciones independientes (como checkboxes) y opciones exclusivas (como radio botones). 9 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Botones de conmutación (II) Pueden representar: Opciones independientes: Se comportan como checkboxes. Opciones exclusivas: Se comportan como botones de radio. En ambos casos los botones de conmutación suelen emplearse en las barras de herramientas (toolbars) y los checkboxes y radiobotones en cuadros de diálogo. Propiedad selected: true si el botón está ON false si el botón está OFF 10 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente CheckBox (JCheckBox) Es un control que representa también dos estados: on y off De la misma forma que en ceso de los botones de conmutación, la propiedad selected indica si el componente está o no seleccionado. 11 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Radio Botones (JRadioButton) Permiten seleccionar una única opción dentro de un conjunto de opciones relacionadas En java: añadir los radio botones al mismo grupo (ButtonGroup) Aunque los radio botones y los botones de conmutación agrupados tienen la misma función conviene emplear los radio botones en cuadros de diálogo. Los botones de radio (al igual que los checkboxes) suelen aparecer visualmente agrupados, con una leyenda que indica a que hacen referencia. Una forma para conseguir esta agrupación en Swing es mediante un panel al que se le indica un borde y un título. Propiedades y métodos relevantes son similares al CheckBox. 12 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Combo Boxes (JComboBox) Es un componente con una flecha que al hacer click sobre ella nos permite seleccionar entre un conjunto de opciones mutuamente exclusivas Hay que emplear capitalización para el texto de los ítems que aparecen en el combo box. Los elementos han de aparecer ordenados. Hay que facilitar el acceso por teclado, proporcionando etiquetas con mnemotécnicos. 13 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Combo Boxes (II) No Editables A veces llamados List Boxes. Muestran una lista de la que el usuario puede elegir un elemento. Se suelen emplear en vez de un grupo de botones de radio cuando: El espacio en la aplicación es limitado y/o El número de opciones posibles es grande Editables El usuario puede teclear, seleccionar o editar texto. Se suelen emplear para ahorrar tiempo al usuario permitiéndole teclear directamente un valor (además de, por supuesto, seleccionarlo de la lista) 14 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Componentes para Texto Permiten a los usuarios ver y editar texto en una aplicación Algunos componentes: Etiquetas (JLabel) Campos de texto (JText Field) Campos para contraseña (JPassword Field) Areas de texto (JText Area) 15 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Label (JLabel) Muestra texto, gráficos o ambos, pero de sólo lectura No puede ser seleccionada por el usuario El texto que contienen ha de ser breve y la terminología empleada ha de ser familiar para los usuarios Se pueden emplear mnemotécnicos en las etiquetas (displayedMnemonic). Cuando se activa el mnemónico, se sitúa el foco en el componente que describe la etiqueta (labelFor). La etiqueta ha de estar inactiva cuando el componente que describe esté inactivo Las etiquetas siempre deben ir antes o encima del componente que describen. Para los lenguajes que leen de izquierda a derecha, antes es a la izquierda del componente. Hay que emplear la capitalización en el texto de la etiqueta y colocar : al final del texto. Tiene dos funciones en una aplicación: Identificar componentes Comunicar el estado o dar instrucciones a los usuarios 16 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Text Field (JTextField) Muestra una línea de texto. Puede ser Editable: los usuarios pueden editar o escribir una línea de texto simple. No editable. Los usuarios pueden seleccionar y copiar el texto, pero no pueden cambiarlo. El texto únicamente puede ser modificado por la aplicación. Para asociarle un mnemónico debe asociársele una etiqueta. Realizar acciones cuando el usuario: Teclee enter Mueva el foco fuera de este campo .. 17 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente Password Field (JPasswordField) Es un Text Field editable que muestra unos caracteres enmascarados en lugar de los caracteres que teclea el usuario. Proporciona algunas de las capacidades de edición de un Text Field pero no las operaciones de cortar y copiar. 18 Ana Belén Martínez Prieto Mª del Carmen Suárez Torrente