TEMA 1. Diseño de interfaces gráficas

Slides:



Advertisements
Presentaciones similares
Excel.
Advertisements

TABLAS EN WORD.
Programación “Conducida por eventos” Event-driven programming
Relaciones Industriales - DTI – Corpoica (Tibaitatá)
David Escudero Mancebo Alfonso Pedriza Rebollo
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 12 - Introducción.
Qué es una ventana En informática, una ventana es un área visual, normalmente de forma rectangular, que contiene algún tipo de interfaz de usuario, mostrando.
En esta fase del editor de texto mostraremos los avances que ha obtenido el equipo a lo largo de estas semanas. Así como las clases, eventos, botones,
Java Parte II Taller de Sistemas de Programas Enero-Marzo 99 Prof. : Sandra Zabala, Marilenis Olivera Ivette C. Martínez, Pedro García, Alejandra Blanco.
En esta fase del editor de texto mostraremos los avances que ha obtenido el equipo a lo largo de estas semanas. Así como las clases, eventos, botones,
TEMA 1. Diseño de interfaces gráficas
Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO330.
Aplicaciones GUI en Java
Tema 6: Clases Antonio J. Sierra.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Curso Básico de Crystal Presentation Design (Departamental Edition) Xcelsius Sesión 4.
Ingeniero Anyelo Quintero
ELEMENTOS DE LA VENTANA
DR. ERNESTO SUAREZ.
ENTORNO GRÁFICO DE VISUAL BASIC 2013
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Agustín J. González ELO329/ELO330
Es la tercera etiqueta de Excel de la banda de opciones.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
Programación Orientada a Objetos
Jesús Arellano JMenu.
Sintaxis Completa los siguientes esquemas: Esquema de excepción Excepción Definición Tipos Implementación En el lenguaje Java, excepción es un tipo de.
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO (GUI GRAPHICAL.
Hermilia Molina Acevedo
Interfaces Graficas Profesor: Rodrigo Cruzat. Contenedores La ventana misma, que contiene botones, texto, etc… y donde se realizará la interacción JFrame.
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
Programación de Interfaces Gráficas en Java
Programación Gráfica Agustín J. González ELO329/ELO330.
Muchas personas usan una lista de tareas pendientes, ya sea en papel, en una hoja de cálculo o en una combinación de papel y medios electrónicos. En Outlook.
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Excel La Hoja De Cálculo.
Programación de Interfaces Gráficas en Java
Elementos Tipicos de las Interfaces Graficas de usuario.
Sitios WEB HTML Dreamweaver Interfaz Instructor: Adbeel Cabnal.
EXCEL 2013 DEFINICION PARTES FUNDAMENTALES DIBUJOS EXCEL VIDEO
1 Una vez completada esta lección, podrá: Crear un libro. Conocer los elementos de la ventana de Microsoft Excel. Seleccionar celdas. Introducir texto,
Combinar Correspondencia
Ing. Vanessa Borjas. Entorno gráfico En un entorno gráfico se tiende a que cada uno de los programas esté compuesto por un formulario, aunque no es una.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 AWT ABSTRAC WINDOW TOOLKIT.
Manejo de Eventos Visita FIEC FIEC. Eventos En evento es una acción iniciada por el usuario. Ejemplo de eventos son: presionar un botón, cambiar un texto,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
A continuación podrás conocer y llevar a cabo las operaciones propias de Representaciones Gráficas: Diagramas en CALC. Haz click en el botón destacado.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
M.C. Meliza Contreras González.  Se le llama interfaz gráfica al conjunto de componentes gráficos(ventanas, botones, combos, listas, cajas de dialogo,
P O W E R P O I N T CONCEPTOS BÁSICOS 1.
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Procesador de textos. Componentes de Word. Multiversidad Latinoamericana Campus Celaya Bachillerato Informática I Prof. Brayan Tula Villanueva 1er. Semestre.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Curso de Excel Básico Sesión 1 1. Microsoft Excel es un programa utilizado para la creación, manejo y almacenamiento de hojas de cálculo. Permite realizar.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Exception Object Throwable Error Exception Runtime Exception.
Interfaces Gráficas de Usuario
Interfaces Gráficas de Usuario
Transcripción de la presentación:

TEMA 1. Diseño de interfaces gráficas Introducción. Ejemplos. Componentes de la interfaz Programación dirigida por eventos Gestores de ubicación La librería Swing Primitivas gráficas de pantalla. Diseño de interfaces gráficas de usuario

Bibliografía http://java.sun.com/docs/books/tutorial/uiswing/ Kathy Walrath, et all. “The JFC Swing Tutorial”. Ed. Addison Wesley. 2004.

Práctica 1 1 . Introducción. Ejemplos El desarrollo de la aplicación se descompone en dos partes diferenciadas: Diseño de la interfaz gráfica Diseño de las clases para el funcionamiento de la calculadora, que supone la definición de un autómata de estados.

1 . Introducción. Ejemplos

Práctica 1 1 . Introducción. Ejemplos Definición de un marco, componente JFrame, que alberga todos las demás componentes. Se trata del contenedor principal de la aplicación. class GUICalculadora extends JFrame { public GUICalculadora() //obtenemos el contendor para colocar las componentes Container marco=getContentPane(); // Asignamos un gestor de ubicación de las componentes BorderLayout planificadorCalculadora = new BorderLayout(); marco.setLayout(planificadorCalculadora);

1 . Introducción. Ejemplos BorderLayout

1 . Introducción. Ejemplos Práctica 1 Guardamos en la clase Contexto el marco principal para poder acceder a el desde cualquier parte de la interfaz Contexto.marco=this;

1 . Introducción. Ejemplos Práctica 1 En la parte Norte colocaremos el campo de texto para visualizar los operadores y el botón CE para el borrado y comienzo de una nueva operación. Ambas componentes están agrupadas en una clase denominada GUIResultCE. GUIResultCE instResultCE = new GUIResultCE(Color.white, Color.red); marco.add(instResultCE,BorderLayout.NORTH); Contexto. barraVisor=instResultCE;

1 . Introducción. Ejemplos Práctica 1 En la parte Centro el juego de botones de los dígitos, todos ellos están agrupados en la clase GUIDigitos. GUIDigitos instGUIDigitos = new GUIDigitos(Color.orange); marco.add(instGUIDigitos,BorderLayout.CENTER); Contexto. barraDigitos=instGUIDigitos;

Práctica 1 1 . Introducción. Ejemplos En la parte Este colocamos el juego de operaciones GUIOperadores instGUIOperadores = new GUIOperadores(Color.magenta); marco.add(instGUIOperadores,BorderLayout.EAST); Contexto. barraOperadores=instGUIOperadores;

Práctica 1 1 . Introducción. Ejemplos Por último en el Sur colocamos la barra de estado GUIBarraEstado instGUIBarraEstado = new GUIBarraEstado(Color.grey); marco.add(instGUIBarraEstado,BorderLayout.SOUTH) Contexto. barraEstado=instGUIBarraEstado;

Práctica 1 1 . Introducción. Ejemplos Al final colocamos las propiedades del marco y creamos y guardamos el oyente de todos los botones en la clase Contexto. setSize(200,200); //Para centrar la ventana en la pantalla setLocationRelativeTo(null); setTitle("Calculadora1"); setResizable(false); setVisible(true); Contexto.oy=new Oyente();

Práctica 1 1 . Introducción. Ejemplos class GUIBarraEstado extends JPanel { JLabel etiquetaEstado = new JLabel(); public GUIBarraEstado(Color colorFondo) {etiquetaEstado = new JLabel(“Leyendo Operando1"); //indica alineación a la izquierda y número de espacios horizontales y verticales FlowLayout planificadorBarraEstado = new FlowLayout(FlowLayout.LEFT,10, 5); setLayout(planificadorBarraEstado); setBackground(colorFondo); add(etiquetaEstado); }//Fin del constructor GUIBarraEstado(Color,Color)

Panel 1 . Introducción. Ejemplos Un Panel es un contenedor de componentes que no tiene ningún elemento predefinido. El gestor de ubicación empleado es el FlowLayout que añade los componentes de izquierda a derecha y de arriba abajo.

Práctica 1 1 . Introducción. Ejemplos public void actualizaBarraEstado(String mensaje) {etiquetaEstado.setText(mensaje); }//Fin de actualizaMensaje

Práctica 1 1 . Introducción. Ejemplos public class GUIResultCE extends JPanel { JTextField visor = new JTextField("",10); JButton botonCE = new JButton("CE"); public GUIResultCE(Color colorFondo, Color colorBoton) {visor.setHorizontalAlignment(JTextField.RIGHT); // Color cuando el campo de texto es sólo de salida visor.setDisabledTextColor(Color.black); FlowLayout planificadorResultCE = new FlowLayout(FlowLayout.LEFT,10, 5); setLayout(planificadorResultCE);

Práctica 1 1 . Introducción. Ejemplos public class GUIResultCE extends JPanel { … visor.setBackground(colorFondo); visor.setEnabled(false); add(visor); botonCE.addMouseListener(Contexto.oy); botonCE.setForeground(colorBoton); add(botonCE); }//Fin del constructor GUIResultCE(Color,Color)

Práctica 1 1 . Introducción. Ejemplos public void actualizaVisor(String texto) {visor.setText(texto); }//Fin de actualizaVisor public String dameVisor() {return visor.getText(); }//Fin de dameVisor

Práctica 1 1 . Introducción. Ejemplos public class GUIOperadores extends JPanel { private final int NUM_OPERADORES = 4; JButton [] botonOperador = new JButton[NUM_OPERADORES]; public GUIOperadores(Color colorBotones) {GridLayout PlanificadorOperadores = new GridLayout(NUM_OPERADORES,1); setLayout(PlanificadorOperadores); botonOperador[0] = new JButton("+"); botonOperador[1] = new JButton("-"); botonOperador[2] = new JButton("*"); botonOperador[3] = new JButton("/");

Práctica 1 1 . Introducción. Ejemplos public class GUIOperadores extends JPanel { … for(int i = 0; i < NUM_OPERADORES; i++) botonOperador[i].setBackground(colorBotones); add(botonOperador[i]); obotonOperador[i].addMouseListener(Contexto.oy); }}}

Práctica 1 1 . Introducción. Ejemplos public class GUIDigitos extends JPanel { private final int NUM_DIGITOS = 12; JButton [] botonDigito = new JButton[NUM_DIGITOS]; public GUIDigitos (Color colorBotones) {GridLayout PlanificadorBotones = new GridLayout(4,3); setLayout(PlanificadorBotones); for(int fila = 0; fila < 3; fila ++) for(int columna = 0; columna < 3; columna ++) botonDigito[fila*3+columna] = new JButton(String.valueOf(fila*3+columna)); botonDigito[9] = new JButton("9"); botonDigito[10] = new JButton("."); botonDigito[11] = new JButton("=");

Práctica 1 1 . Introducción. Ejemplos for(int i = 0; i < NUM_DIGITOS; i++) {botonDigito[i].setBackground(colorBotones); add(botonDigito[i]); botonDigito[i].addMouseListener(Contexto.oy); }}

Práctica 1 1 . Introducción. Ejemplos El gestor de ubicación GridLayout define una retícula de componentes, indicando el número de filas y columnas. Las componentes se colocan de izquierda a derecha y de arriba abajo.

Práctica 1 1 . Introducción. Ejemplos public class OyenteBoton extends MouseAdapter {public void mouseClicked(MouseEvent eventoEntrante) { JButton boton = (JButton)eventoEntrante.getSource(); char ch = boton.getText().charAt(0); Automata.CaracterIntroducido(ch); }//Fin de mouseClicked public void mouseExited(MouseEvent eventoEntrante){;} public void mouseReleased(MouseEvent eventoEntrante){;} public void mousePressed(MouseEvent eventoEntrante){;} public void mouseEntered(MouseEvent eventoEntrante){;} }//Fin de la clase ControlRaton

Práctica 1 1 . Introducción. Ejemplos class Contexto { public static GUIResultCE barraVisor = null; public static GUIBarraEstado barraEstado = null; //public static GUIDigitos botoneraDigitos = null; //public static GUIOperadores botoneraOperadores = null public static Oyente oy=null;

Práctica 1 1 . Introducción. Ejemplos import javax.swing.*; class Principal { public static void main(String args[]) { GUICalculadora calculadora = new GUICalculadora(); }//Fin de main }

1 . Introducción. Ejemplos

Componentes de la interfaz 2 . Componentes de interfaz Componentes de la interfaz Los controles de una interfaz poseen una representación gráfica, un conjunto de campos y un conjunto de métodos. Distinguimos entre dos tipos de controles, los contenedores y las componentes básicas que se ubican en los contenedores.

Índice visual de controles 2 . Componentes de interfaz Índice visual de controles

Índice visual de controles 2 . Componentes de interfaz Índice visual de controles

Índice visual de controles 2 . Componentes de interfaz Índice visual de controles

HTML en componentes 2 . Componentes de interfaz Muchas componentes que usan texto como parte de su visualización, pueden determinar su apariencia a través de etiquetas Html de formateo. Ejemplo: Label=new Jlabel(“<html><b>hola</b></html>”);

Contenedores de nivel superior 2 . Componentes de interfaz Contenedores de nivel superior Swing proporciona tres clases de contenedores de nivel superior: JFrame, JDialog y JApplet. Cualquier control de interfaz forma parte de una jerarquía de contenedores. Cada componente solo puede estar contenida en una. Cada contenedor de nivel superior tiene un Content Pane sobre el que se ubican las componentes. Se obtiene con getContentPane. Se pueden añadir barras de menú en los contenedores de nivel superior, mediante el método setJMenuBar.

Contenedores de nivel superior 2 . Componentes de interfaz Contenedores de nivel superior

Contenedores de nivel superior 2 . Componentes de interfaz Contenedores de nivel superior Cada contenedor de nivel superior mantiene un contenedor intermediario denominado root pane, que contiene a Content Pane y al Menu Bar. Normalmente no es necesaria la gestión del root pane salvo que se quieran interceptar clicks de ratón o dibujos sobre varios componentes.

Contenedores de nivel superior 2 . Componentes de interfaz Contenedores de nivel superior

Contenedores de nivel superior 2 . Componentes de interfaz Contenedores de nivel superior El Panel de Cristal Oculto, por defecto. Si se hace visible, es como si se pusiera una hoja de cristal sobre las otras partes del panel raiz. Es completamente transparente (a menos que hagamos que el método paint haga algo) e intercepta los eventos de entrada para el panel raíz. El panel de capas Sirve para posicionar sus contenidos, que consisten en el panel de contenido y la barra de menú opcional. También puede contener otros componentes en un orden Z especificado. El Panel de Contenido El contenedor de los componentes visibles del panel raíz, excluyendo la barra de menú. La barra de menú opcional El hogar para los menús del panel de contenido. Si el contenedor tiene una barra de menús, generalmente se utilizan los métodos setMenuBar o setJMenuBar del contenedor para poner la barra de menú en el lugar apropiado.

La clase JComponent 2 . Componentes de interfaz Salvo los contenedores de nivel superior todos las demás componentes de interfaz descienden de la clase JComponent. La clase JComponent, desciende de Container que a su vez desciende de Component. Tiene muchas características: Tool tips (setToolTipText) Bordes Doble Buffering Propiedades a la carta Ver en la documentación algunos de sus métodos

2 . Componentes de interfaz Componentes de texto

2 . Componentes de interfaz Componentes de texto

TextField 2 . Componentes de interfaz import java.awt.*; import java.awt.event.*; Import java.swing.*; public class Camposdetexto extends JFrame { TextField t; public Camposdetexto() { Container marco=getContentPane(); marco.setLayout(new FlowLayout()); t= new JTextField("valor por defecto"); marco.add(t); Oyente oy=new Oyente(); t.addActionListener( oy) } // se implementa como una clase interna // El ActionEvent se produce cuando se inserta el salto de línea class Oyente implements ActionListener { public void actionPerformed(ActionEvent e) { … ;}}

JTextArea 2 . Componentes de interfaz public class AreaTexto extends JFrame{ TextArea ta; public AreaTexto() { Container marco=getContentPane(); marco.setLayout(new FlowLayout()); ta = new JTextArea("tira \n char",3,10); marco.add(ta); Oyente Oy=new Oyente(); ta.addTextListener(Oy);} class Oyente implements TextListener{ public void textValueChanged(TextEvent e) {escribe();} public void escribe() { ….}

2 . Componentes de interfaz Menús

2 . Componentes de interfaz Menús

Menús 2 . Componentes de interfaz //Donde se cree el menu JMenuBar menuBar; JMenu menu, submenu; JMenuItem menuItem; JRadioButtonMenuItem rbMenuItem; JCheckBoxMenuItem cbMenuItem; //Creamos el menu bar. menuBar = new JMenuBar(); //Construimos el primer menu. menu = new JMenu("A Menu"); menu.setMnemonic(KeyEvent.VK_A); menuBar.add(menu);

Menús 2 . Componentes de interfaz //un grupo de JMenuItems menuItem = new JMenuItem("A text-only menu item", KeyEvent.VK_T); menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_1, ActionEvent.ALT_MASK)); menu.add(menuItem); menuItem1 = new JMenuItem("Both text and icon", new ImageIcon("images/middle.gif")); menuItem1.setMnemonic(KeyEvent.VK_B); menu.add(menuItem1);

Menús 2 . Componentes de interfaz //Un grupo de radio button menu items menu.addSeparator(); ButtonGroup group = new ButtonGroup(); rbMenuItem = new JRadioButtonMenuItem("A radio button menu item"); rbMenuItem.setSelected(true); rbMenuItem.setMnemonic(KeyEvent.VK_R); group.add(rbMenuItem); menu.add(rbMenuItem);

Menús //un check box menu items menu.addSeparator(); 2 . Componentes de interfaz Menús //un check box menu items menu.addSeparator(); cbMenuItem = new JCheckBoxMenuItem("A check box menu item"); cbMenuItem.setMnemonic(KeyEvent.VK_C); menu.add(cbMenuItem);

Menús 2 . Componentes de interfaz //a submenu menu.addSeparator(); submenu = new JMenu("A submenu"); submenu.setMnemonic(KeyEvent.VK_S); menuItem = new JMenuItem("An item in the submenu"); menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_2, ActionEvent.ALT_MASK)); submenu.add(menuItem); menuItem = new JMenuItem("Another item"); menu.add(submenu);

Menús 2 . Componentes de interfaz //Construyendo el segundo menu en el menu bar. menu = new JMenu("Another Menu"); menu.setMnemonic(KeyEvent.VK_N); menu.getAccessibleContext().setAccessibleDescription( "This menu does nothing"); menuBar.add(menu); ... frame.setJMenuBar(theJMenuBar);

Menú Popup 2 . Componentes de interfaz //Crear un popup menu. popup = new JPopupMenu(); menuItem = new JMenuItem("A popup menu item"); menuItem.addActionListener(this); popup.add(menuItem); menuItem = new JMenuItem("Another popup menu item"); //Añadir oyentes que puedan manejar popup menus. MouseListener popupoyente = new OyentePopup(); output.addMouseListener(popupoyente);

2 . Componentes de interfaz Menú Popup class OyentePopup extends MouseAdapter { public void mouseClicked(MouseEvent e) { maybeShowPopup(e); } private void maybeShowPopup(MouseEvent e) { if (e.isPopupTrigger()) { popup.show(e.getComponent(), e.getX(), e.getY()); } } }

Dialog 2 . Componentes de interfaz La forma más sencilla de definir una caja de diálogo es mediante la clase JOptionPane . La clase ProgressMonitor muestra el progreso de una operación. Las clases JColorChooser y JFileChooser, son casos especiales orientados a la selección de color y ficheros. Para usar una caja de diálogo para imprimir usar Print API. Para crear una caja de diálogo a la carta debemos usar la clase JDialog directamente.

Dialog 2 . Componentes de interfaz Normalmente una caja de diálogo es dependiente de un marco. Cuando el marco es destruido el cuadro también. Si el marco se minimiza también lo hará el cuadro. Un cuadro puede ser modal de forma que cuando es visible bloquea todas las componentes de la interfaz. La clase JDialog, tiene un root pane igual que la clase JFrame y su funcionamiento es similar.

2 . Componentes de interfaz JOptionPane Con esta clase se pueden crear diferentes tipos de cajas de diálogo. //título e icono por defecto JOptionPane.showMessageDialog(frame, "Eggs aren't supposed to be green.");

2 . Componentes de interfaz JOptionPane //icono de advertencia JOptionPane.showMessageDialog(frame, "Eggs aren't supposed to be green.", "Inane warning", JOptionPane.WARNING_MESSAGE);

JOptionPane 2 . Componentes de interfaz //Custom button text Object[] options = {"Yes, please", "No, thanks", "No eggs, no ham!"}; int n = JOptionPane.showOptionDialog(frame, "Would you like some green eggs to go " + "with that ham?", "A Silly Question", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[2]);

Color chooser El ColorChooser es un control para seleccionar colores: 2 . Componentes de interfaz Color chooser El ColorChooser es un control para seleccionar colores:

Color chooser 2 . Componentes de interfaz public class ColorChooserDemo extends JPanel ... { public ColorChooserDemo() { super(new BorderLayout()); banner = new JLabel("Welcome to the Tutorial Zone!", JLabel.CENTER); banner.setForeground(Color.yellow); . . . tcc = new JColorChooser(banner.getForeground()); . . . add(tcc, BorderLayout.PAGE_END); }

Color chooser 2 . Componentes de interfaz Un JColorChooser utiliza una instancia de un ColorSelectionModel que contiene y maneja la selección actual del color. El modelo recoge un cambio de color cuando el usuario cambia el color de JColorChooser. Cuando se coloca un oyente de este tipo de eventos hay que tener cuidado ya que el oyente se tiene que colocar sobre el modelo: tcc.getSelectionModel().addChangeListener(this); . . . public void stateChanged(ChangeEvent e) { Color newColor = tcc.getColor(); banner.setForeground(newColor); }

2 . Componentes de interfaz Modelos Como ocurre con el JColorChooser muchas componentes de swing tiene modelos que almacenan el estado de la componente. Por ejemplo en un JButton se almacena si esta seleccionado, activo, presionado o cuál es la tecla que lo acciona.

2 . Componentes de interfaz Color chooser Para mostrar un JColorChooser en un cuadro de diálogo tendremos que invocar el método showDialog, indicando el padre del Dialog, el texto del cuadro y el color inicial que debe estar seleccionado. Color newColor = JColorChooser.showDialog( ColorChooserDemo2.this, "Choose Background Color", banner.getBackground());

File Chooser 2 . Componentes de interfaz File choosers proporciona una componente para acceder al sistema de ficheros de forma que se pueda seleccionar un fichero o directorio. Para visualizar un file chooser se usa la clases JFileChooser API que muestra un diálogo modal que contiene el selector de ficheros. Una caja de diálogo modal es aquella que mientras esta activada anula el resto de la igu.

2 . Componentes de interfaz File Chooser

2 . Componentes de interfaz File Chooser Para crear un selector de fichero es similar al selector de color: JFileChooser fc = new JFileChooser(); ... //Como respuesta a un click de ratón int returnVal = fc.showOpenDialog(aComponent); El argumento aComponent especifica el padre de la caja de diálogo.

File Chooser 2 . Componentes de interfaz public void actionPerformed(ActionEvent e) { if (e.getSource() == openButton) { int returnVal = fc.showOpenDialog(FileChooserDemo.this); if (returnVal =JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); } } ... }

Lista 2 . Componentes de interfaz Una lista presenta al usuario un grupo de items, visualizados en una o mas columnas para seleccionar. Dentro de Swing existen otras componentes orientadas al mismo fin como son el Combo box, menús y los botones de radio.

Lista // Crear una lista con 2 . Componentes de interfaz Inicializar una lista directamente con un vector de Objects: // Crear una lista con String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data); Inicializar una lista a través de un ListModel, en particular se puede utilizar el DefaultListModel.

Lista 2 . Componentes de interfaz Inicializar una lista a través de un ListModel, en particular se puede utilizar el DefaultListModel. listModel = new DefaultListModel(); listModel.addElement(“primero"); listModel.addElement(“segundo"); listModel.addElement(“tercero"); listModel.addElement(“cuarto"); listModel.addElement(“quinto"); listModel.addElement(“sexto"); list = new JList(listModel);

Lista String[] data = {"one", "two", "three", "four"}; 2 . Componentes de interfaz Lista Para seleccionar un elemento de la lista: String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data); dataList.setSelectedIndex(1); dataList.getSelectedValue();

Lista 2 . Componentes de interfaz El evento que se genera cuando se realiza una selección del item es ListSelecctionEvent.