Programacin grfica Diseo de la interfaz grfica javax

















![Ejemplo JOption. Dialog Object[] opciones = { "Continuar", "Cancelar", "Guardar Estado" }; //Devuelve el Ejemplo JOption. Dialog Object[] opciones = { "Continuar", "Cancelar", "Guardar Estado" }; //Devuelve el](https://slidetodoc.com/presentation_image_h/b90cc98246c2dd9b30d35169d49c97b8/image-18.jpg)
![Ejemplo entrada de datos Object [] valores = {"Libro", "CD", "DVD" }; String respuesta=(String) Ejemplo entrada de datos Object [] valores = {"Libro", "CD", "DVD" }; String respuesta=(String)](https://slidetodoc.com/presentation_image_h/b90cc98246c2dd9b30d35169d49c97b8/image-19.jpg)























- Slides: 42

Programación gráfica • Diseño de la interfaz gráfica (javax. swing) – Contenedores – Componentes • Modelo de eventos • Diseño de aplicaciones – Modelo MVC (Modelo-Vista-Control) El lenguaje de programación Java

Interfaz gráfica de usuario • El interfaz de usuario es la parte del programa que permite a éste interactuar con el usuario. • AWT (Abstract Window Toolkit) biblioteca de clases Java para el desarrollo de Interfaces de Usuario Gráficas. • La estructura básica del AWT se basa en Componentes y Contenedores – Los Contenedores contienen Componentes, que son los controles básicos – todos los Componentes clase Component o uno de sus subtipos. – los Contenedores son instancias de la clase Container o uno de sus subtipos. • No se usan posiciones fijas de los Componentes, sino que están situados a través de una disposición controlada (Layouts) El lenguaje de programación Java

Interfaz gráfica de usuario. AWT Component Scroll. Bar List Button Label Canvas Choice Checkbox Container Panel Scroll. Pane Text. Component Text. Area Text. Field Window Dialog Frame Menu. Component Menu. Bar Menu. Item File. Dialog Check. Box. Menu. Item Menu Popup. Menu

Swing-JFC (Java Foundation Classes) • Extensión de AWT mejora la cosmética de las GUI’s. • La apariencia de la aplicación se adapta al sistema operativo y plataforma donde se está ejecutando. • Garantizan que el aspecto es el mismo aunque se cambie de plataforma. −Look and Feel: Metal, Window, Motif • La aplicación se puede utilizar sin ratón sin añadir código • Las clases se llaman igual que las del paquete java. awt pero con una J delante, esto es, JFrame, JButton, . . . El lenguaje de programación Java 4

• Swing Containers: JPanel, JTabbed. Pane, JScroll. Pane, JSplit. Pane, JMenu. Bar, JPopup. Menu, JTool. Bar • Swing Components: JButton, JRadio. Button, JChech. Box, JLabel, JText. Area, JText. Field, JPassword. Field, JCombo. Box, JList, JTree, JTable El lenguaje de programación Java

JFrame • paquete javax. swing • Por defecto se crea con tamaño 0 x 0 – set. Size(ancho, alto) • Hay que indicar qué ocurrirá cuando el usuario cierre la ventana – set. Default. Close. Operation(cte) – cte = EXIT_ON_CLOSE/DO_NOTHING_ON_CLOSE/HIDE_ON_CLOSE/ DISPOSE_ON_CLOSE • Al crear un frame no se visualiza automáticamente – set. Visible(true) • Para situar un frame en la ventana: – set. Location(x, y) //(x, y) es la esquina superior-izda – set. Bounds(x, y, ancho, alto) El lenguaje de programación Java

Toolkit • Permite obtener información dependiente del sistema. • Ejemplo: Permite obtener las dimensiones de la pantalla para poder calcular el tamaño óptimo del tamaño de las ventanas de la aplicación. class Frame. Centrado extends JFrame{ public Frame. Centrado() { try { jb. Init(); } catch(Exception e) { e. print. Stack. Trace(); } } private void jb. Init() throws Exception { //siguiente transparencia } El lenguaje de programación Java }

clase Frame. Centrado (continuación) private void jb. Init() throws Exception { //obtener las dimensiones de la pantalla Toolkit = Toolkit. get. Default. Toolkit(); Dimension tamaño. Vtna = kit. get. Screen. Size(); int alto = tamaño. Vtna. height; int ancho = tamaño. Vtna. width; //centrar la ventana en la pantalla this. set. Size(ancho/2, alto/2); set. Location(ancho/4, alto/4); //Establecer título e icono Image img = kit. get. Image(“icon. gif”); //gif y jpeg set. Icon. Image(img); set. Title(“Frame centrado”); } El lenguaje de programación Java

• No se añaden directamente los componentes a un frame sino a un panel de contenido. this. get. Content. Pane(). add(…); • Los componentes en un contenedor se gestionan por un layout manager: – Flow. Layout: Alinea los componentes horizontalmente. • opción por defecto en JPanel • dentro de una fila se puede elegir la alineación (LEFT, RIGHT, CENTER) – Border. Layout: opción por defecto del panel de contenido de un JFrame. • Puede elegir dónde colocar los componentes: NORTH, SOUTH, EAST, WEST, CENTER (por defecto) El lenguaje de programación Java

Border. Layout set. Layout(new Border. Layout()); this. get. Content. Pane(componente, “South”); • Las constantes se han definido como String. • El componente tiende a ocupar todo el espacio disponible. • Solución: situar un panel (JPanel) en cada zona que necesitemos El lenguaje de programación Java

Etiquetas. JLabel etiq 2 = new JLabel( "Etiqueta 2" ); etiq 2. set. Text(“Soy una etiqueta”); etiq 2. set. Font( new Font("Helvetica", Font. BOLD, 18 )); Icon imagen = new Image. Icon( "star 0. gif" ); JLabel etiq 3 = new JLabel( "Etiqueta 3"); etiq 3. set. Icon(imagen); El lenguaje de programación Java 11

JText. Field, JText. Area y JScroll. Pane • Introducir texto en una línea o varias. • Métodos heredados de JText. Component: – void set. Text(String t) – String get. Text() – void set. Editable(boolean b) • El layout puede ajustar el tamaño del JText. Field aunque se establezca un tamaño preferido (set. Columns) • JText. Area se pueden establecer las filas (rows) y columnas (columns) • Se puede añadir una barra de scroll (JScroll. Pane). Aparecerá cuando el texto exceda el tamaño establecido text. Area = new JText. Area(8, 40); JScroll. Pane sp = new JScroll. Pane(text. Area); content. Pane. add(scroll. Pane, Boreder. Layout. CENTER);

Pestañas. JTabbed. Pane • Cada pestaña debe tener un JPanel para añadir los componentes • Botón de dos estados • JRadio. Button y JCheck. Box son subclases Button. Group (exclusividad) • String informativo sobre los componentes: boton 1. set. Tool. Tip. Text( "Soy el JBoton 1" ); El lenguaje de programación Java 13 • Se pueden asignar imágenes (Icon) a los botones (JButton).

JCheck. Box y JRadio. Button • JCheck. Box: – – – JCheck. Box(String label) JCheck. Box(String label, boolean state) JCheck. Box(String label, Icon icon) boolean is. Selected() void set. Selected(boolean state) • JRadio. Button: – JRadio. Button(String label, boolean state) – JRadio. Button(String label, Icon icon) – Para una selección exclusiva se tienen que agrupar en Button. Group: • add(Abstract. Button b) • Button. Model get. Selection(); – Button. Model • String get. Action. Command() El lenguaje de programación Java

JCombo. Box • Seleccionar entre muchas alternativas • Métodos: – – – – void set. Editable(boolean b) void add. Item(Object item) void insert. Item. At(Object item, int index) void remove. Item(Object item) void remove. Item. At(int index) void remove. All. Items() Object get. Selected. Item() El lenguaje de programación Java

JOption. Pane • Ventanas de mensajes estándar que permiten mostrar un mensaje de información al usuario o capturar información. • Casi todos los usos de esta clase son llamadas a uno de los métodos static show. Xxx. Dialog – – JOption. Pane. show. Message. Dialog(); JOption. Pane. show. Confirm. Dialog(); JOption. Pane. show. Option. Dialog)(); JOption. Pane. show. Input. Dialog(); • Todos los diálogos son modales (no continúa la ejecución hasta que no se cierra). • Se pueden configurar mediante parámetros: título, mensaje, icono, etc. El lenguaje de programación Java

Ejemplos JOption. Pane. show. Message. Dialog(null, "Cuidado con lo que haces", "Consejo", JOption. Pane. ERROR_MESSAGE); Tipos de mensajes: ERROR_MESSAGE INFORMATION_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE int opcion = JOption. Pane. show. Confirm. Dialog(null, “Debes elegir uno", “Decide", JOption. Pane. YES_NO_OPTION); Tipos de opciones: DEFAULT_OPTION YES_NO_CANCEL_OPTION OK_CANCEL_OPTION Respuestas: OK_OPTION CANCEL_OPTION YES_OPTION NO_OPTION CLOSED_OPTION
![Ejemplo JOption Dialog Object opciones Continuar Cancelar Guardar Estado Devuelve el Ejemplo JOption. Dialog Object[] opciones = { "Continuar", "Cancelar", "Guardar Estado" }; //Devuelve el](https://slidetodoc.com/presentation_image_h/b90cc98246c2dd9b30d35169d49c97b8/image-18.jpg)
Ejemplo JOption. Dialog Object[] opciones = { "Continuar", "Cancelar", "Guardar Estado" }; //Devuelve el índice de la opción elegida int opcion = JOption. Pane. show. Option. Dialog(null, "Podemos estar en un estado inconsistente", "¡¡¡OJO!!!", JOption. Pane. DEFAULT_OPTION, JOption. Pane. WARNING_MESSAGE, null, opciones[0]); El lenguaje de programación Java 18
![Ejemplo entrada de datos Object valores Libro CD DVD String respuestaString Ejemplo entrada de datos Object [] valores = {"Libro", "CD", "DVD" }; String respuesta=(String)](https://slidetodoc.com/presentation_image_h/b90cc98246c2dd9b30d35169d49c97b8/image-19.jpg)
Ejemplo entrada de datos Object [] valores = {"Libro", "CD", "DVD" }; String respuesta=(String) JOption. Pane. show. Input. Dialog( null, "Elija el tipo de producto", "Entrada de datos", JOption. Pane. QUESTION_MESSAGE, null, valores[0]); El lenguaje de programación Java 19

Ejemplo entrada de datos libre Icon icono = new Image. Icon("icons/Question. gif"); String respuesta = (String)JOption. Pane. show. Input. Dialog( null, "Introduzca el nombre que va a borrar", "Eliminar contacto", JOption. Pane. QUESTION_MESSAGE, icono, null); El lenguaje de programación Java 20

Diálogos de Ficheros • clase JFile. Chooser • Métodos: – show. Open. Dialog: para abrir fichero – show. Save. Dialog: para guardar fichero • Pasos: JFile. Chooser chooser = new JFile. Chooser(); // Establecer el directorio de trabajo como // el directorio por defecto chooser. set. Current. Directory(new File(“. ”)); //Establecer un fichero por defecto chooser. set. Selected. File(new File(nombre. Fichero)); //abrir la ventana de diálogo int resultado = chooser. show. Open. Dialog(parent) ó int resultado = chooser. show. Save. Dialog(parent) El lenguaje de programación Java

JFile. Chooser. show. Open. Dialog Valores de retorno: JFile. Chooser. APPROVE_OPTION JFile. Chooser. CANCEL_OPTION File fichero. Seleccionado = chooser. get. Selected. File(); El lenguaje de programación Java

Filtro de ficheros • Ejemplo: mostrar sólo ficheros de imágenes “gif” import javax. swing. filechooser. File. Filter; public class Gif. Filter extends File. Filter{ /** * Establece qué ficheros serán aceptador */ public boolean accept (File f){ return f. get. Name(). to. Lower. Case(). ends. With(“. gif”) || f. is. Directory(); } /** Describe el tipo de ficheros que se van * a mostrar */ public String get. Description(){ return “Imágenes GIF”; } } El lenguaje de programación Java

Establecer el filtro chooser. set. File. Filter(new Gif. Filter()); El lenguaje de programación Java 24

Asociar JFile. Chooser a una opción de menú void j. Menu. Item. Abrir_action. Performed(Action. Event e) { JFile. Chooser chooser = new JFile. Chooser(); // Establecer el directorio de trabajo como // el directorio por defecto chooser. set. Current. Directory(new java. io. File(". /imagenes")); //Establecer el filtro chooser. set. File. Filter(new Gif. Filter()); //abrir la ventana de diálogo int resultado = chooser. show. Open. Dialog(this); if (resultado == JFile. Chooser. APPROVE_OPTION){ java. io. File f = chooser. get. Selected. File(); j. Label. Estado. set. Text(“Abriendo " + f. get. Name()); } } El lenguaje de programación Java

Menús JMenu. Bar JPopup. Menu 1. Añadimos un menú 2. Haciendo doble click abrimos el diseñador de menús El lenguaje de programación Java

Diseñador de menús El lenguaje de programación Java 27

Asignación del menú al componente • Una vez cerrado el diseñador de menús, asignamos el JMenu. Bar al componente que lo contendrá (JFrame o JDialog). • Desde el diseñador • El resultado es que en la definición de Ventana. Contador se añada: this. set. JMenu. Bar(j. Menu. Bar 1); Propiedades del JFrame o JDialog El lenguaje de programación Java

Modelo de delegación de eventos • Los eventos se encapsulan en una jerarquía de clases donde la clase raíz es java. util. Event. Object • Fuentes de eventos (Source): – es un objeto que tiene la capacidad de detectar eventos y notificar a los receptores de eventos que se han producido esos eventos – mantiene una lista de objetos receptores y los tipos de eventos a los que están suscritos. El programador crea esa lista utilizando llamadas a los métodos add<Tipo. Evento>Listener() (tb remove). – Generalmente un componente del interfaz gráfico • Receptores de eventos (Listener): – es una clase (o una subclase de una clase) que implementa un interfaz receptor específico java. util. Event. Listener – declara TODOS los métodos adecuados al tratamiento de los eventos de su clase • Resultan de utilidad las clases internas

Modelo de delegación de eventos • Emparejamiento entre clases de eventos y definiciones de interfaces. Por ejemplo: – class Mouse. Event – interfaz Mouse. Listener – En java. awt. Component existe el método add. Mouse. Listener • Adaptadores (Adapter): – evita tener que escribir todos los métodos del interfaz – implementa todos los métodos del interfaz con métodos vacíos – una clase receptor puede definirse como una clase que extiende una clase Adapter (en lugar de una clase que implementa el interfaz) y sobreescribe los métodos que necesite – Ejemplo: public abstract class Mouse. Adapter implements Mouse. Listener

Interfaces Listener Métodos

Modelo de delegación de eventos. Ejemplo import java. awt. *; class Cierra. Ventanas implements Window. Listener{ public void window. Closing(Window. Event we){ Window w = (Window)we. get. Source(); w. dispose(); System. exit(0); } public void window. Opened (Window. Event we){} public void window. Closed (Window. Event we){} public void window. Activated (Window. Event we){} public void window. Deactivated (Window. Event we){} public void window. Iconified (Window. Event we){} public void window. Deiconified (Window. Event we){} } public class Mi. Aplicacion extends JFrame{. . . public Mi. Aplicacion(){. . . this. add. Window. Listener(new Cierra. Ventanas()); . . . } } El lenguaje de programación Java

Ejemplo 2: Window. Adapter import java. awt. *; class Cierra. Ventanas extends Window. Adapter{ //Sólo implementamos el método que necesitamos public void window. Closing(Window. Event we){ Window w = (Window)we. get. Source(); w. dispose(); System. exit(0); } } public class Mi. Aplicacion extends JFrame{. . . public Mi. Aplicacion(){. . . this. add. Window. Listener(new Cierra. Ventanas()); . . . } El lenguaje de programación Java }

Ejemplo: JFrame. Contador v. 1 1) JButton j. Button. Dec; 2) j. Button. Dec. add. Action. Listener(new BDListener()); 3) //Clase interna en JFrame. Contador class BDListener implements Action. Listener{ public void action. Performed(Action. Event event){ mi. Conta. decrementar(); imprimir. Valor(); } El lenguaje de programación Java 34 }

Ejemplo: JFrame. Contador v. 2 • Cualquiera de las clases listener pueden ser clases anónimas, que tiene la ventaja de no necesitar un nuevo nombre de clase j. Button. Dec. add. Action. Listener(new Action. Listener(){ public void action. Performed(Action. Event event){ mi. Conta. decrementar(); imprimir. Valor(); } }); • Ningún otro componente podría invocar a este Action. Listener El lenguaje de programación Java 35

En JBuilder se puede elegir el estilo Clase interna El lenguaje de programación Java

Generar los métodos asociados a los eventos sobre los componentes, en el estilo seleccionado void j. Button. Sumar_action. Performed(Action. Event e) { //acciones asociadas al evento (programador) conta. incrementar(); imprimir. Valor(); //rellena el JText. Field } El lenguaje de programación Java 37

Diseñador de menús. Acciones asociadas void j. Menu. Item. Salir_action. Performed(Action. Event e) { //El cuerpo lo rellena el programador System. exit(0); } El lenguaje de programación Java 38

interface Action/ class Abstract. Action • Métodos: – – void action. Performed(Action. Event event) void set. Enabled(boolean b) boolean is. Enabled() void put. Value(String key, Object value) • NAME, SMALL_ICON, SHORT_DESCRIPTION, MNEMONIC_KEY, ACCELERATOR_KEY – Object get. Value(String key) – void add. Property. Change. Listener(Property. Change. Listener listener) – void remove. Property. Change. Listener(Property. Change. Listener listener) • Ejemplo: action. put. Value(Action. NAME, “Abrir"); action. put. Value(Action. SMALL_ICON, new Image. Icon(“open. gif")); El lenguaje de programación Java

Ejemplo: Acción abrir fichero private class Abrir. Action extends Abstract. Action{ public Abrir. Action(){ put. Value(Action. NAME, "Abrir"); put. Value(Action. SMALL_ICON, new Image. Icon(". /imagenes/open. gif")); } public void action. Performed (Action. Event e){ abrir. Fichero(); } } • En el método jb. Init(): //Añadir la misma acción a la barra de tareas y menú Abrir. Action aa = new Abrir. Action(); j. Tool. Bar. Archivo. add(aa); j. Menu. Item. Abrir. set. Action(aa); El lenguaje de programación Java

Asociar acciones a teclas • Clase Key. Stroke, encapsula la descripción de una tecla • Para generar un objeto no se llama al constructor sino al método static, get. Key. Stroke • Todo JComponent tiene (entre otros) un mapa de entrada (Input. Map) que registra los objetos Key. Stroke, cuando el componente contiene el componente que tiene el foco del teclado. – Input. Map imap = panel. get. Input. Map(JComponent. WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) • Todo componente tiene un mapa de acciones (Action. Map) que es el que realmente asocia Key. Stroke con acciones. • Se asocian las acciones con las teclas asociándoles el mismo nombre. El lenguaje de programación Java

Ejemplo: asociar key. Stroke con acción Input. Map imap = panel. get. Input. Map(JComponent. WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); Key. Stroke ctrl. Y = Key. Stroke. get. Key. Stroke(Key. Event. VK_Y, Event. CTRL_MASK); //o Key. Stroke ctrl. Y = Key. Stroke. get. Key. Stroke(“ctrl Y”); imap. put(ctrl. Y, “panel. yellow”): Action. Map amap = panel. get. Action. Map(); Color. Action yellow. Action = new Color. Action(…); amap. put(“panel. yellow”, yellow. Action); El lenguaje de programación Java
Als algoritmo
Programacin
Costos mixtos
Diseo de interiores
Portafolio de diseo
Diseo grafico
05.html?title=
Función escalonada significado
Primer segundo tercer y cuarto cuadrante
Grfica
Interfaccia grafica windows 10
Reglas de oro diseño de interfaz
Interfaz halindeki hücre nükleusu
Interfaz
Partes de la interfaz de powerpoint
Pilares oop
20 tetrat kaç kromozom
Interfaz comparable java
Interfaz de chamilo
Interfaz de word 2016
Java rmi ejemplo
Interfaz grafica de scratch
Interfaz de windows
Doku
Interfaz diagrama de clases
Stokinez
Interfaz de movie maker
Reti di calcolatori corradi
Import java
Import javax.jws.webservice;
Testing where get screening
Import javax.swing.*;
Jaxb remove namespace from root element
Extends jframe
Servlet technology is used to create web application
Javax.ejb.createexception jar
Java import javax
Import java.awt
Bitcicon
Javax.jws.webservice java 11
Import javax.swing.*
Import javax.servlet
Swing import