Você está na página 1de 6

Presentado Por: Viviana Gutirrez cod: 03270009 Presentado A: Ing.

Juan Carlos Diaz _________________________________________________________________________

Java Swing

El Swing es solo una extensin del AWT, mas ahora con componentes de interfaz grafica, componentes que no son dependientes del sistema operativo como se trabajo con AWT. Las ventajas que ofrece el uso de Swing. Por ejemplo, la navegacin con el teclado es automtica, cualquier aplicacin Swing se puede utilizar sin ratn, sin tener que escribir ni una lnea de cdigo adicional. Las etiquetas de informacin, o "tool tips", se pueden crear con una sola lnea de cdigo. Adems la apariencia de la aplicacin se adapta dinmicamente al sistema operativo y plataforma en que est corriendo.

El paso de AWT a Swing es muy sencillo y no hay que descartar nada de lo que se haya hecho con el AWT, en la mayora de los casos es suficiente con aadir una "J" al componente AWT para que se convierta en un componente Swing. A continuacin mostrare como se trabaja algunos de los componentes bsicos del swing con los que trabajare para hacer una pequea aplicacin, de resto los otros solo los nombrare. Bordes: La clase JComponent contiene un mtodo llamado setBorder(), que permite colocar diferentes bordes a un componente visible. se utiliza el mtodo creaBorde() que crea un JPanel y le coloca un borde diferente en cada caso y, adems, coloca el nombre del borde en medio del panel. Etiquetas: Se introduce la clase JLabel para presentar estos textos en pantalla; JLabel implementa todas las caractersticas inherentes a los componentes Swing, como pueden ser los aceleradores de teclado, bordes, y dems. El tipo de letra con que se presenta el texto de la etiqueta se puede cambiar fcilmente, basta con crear una nueva fuente de caracteres e invocar al mtodo setFont() de la clase JLabel. Botones: Se tienen varios tipos de botones y se cambia la organizacin de la seleccin de componentes: todos los botones, cajas de seleccin, botones de seleccin y cualquier opcin de un men deben derivar de AbstractButton. El JButton parece igual que el botn que hay en el AWT, pero se pueden hacer muchas ms cosas con l. Todos los botones, adems, tienen ahora la posibilidad de incorporar imgenes a travs del objeto Icon, que se puede asignar a cualquier tipo de botn. Ademas se pueden asignar varios iconos a un mismo botn para visualizar los diferentes estados

en que pueda encontrarse dicho botn. Adems tambin se puede crear un grupo de botones donde se permite que cualquier AbstractButton pueda ser aadido a un ButtonGroup. Listas: Se trabajan mediante JList, y tienen la misma funcionalidad que AWT, lo malo es que esta no tiene la funcion de desplazamiento as que para solucionar esto se utiliza JScrollPane. JList tambin la posibilidad de presentar grficos, con o sin texto asociado, y tambin proporciona un control adicional de eventos para adecuarse a los que se producen en la manipulacin de este tipo de Componentes. Es decir, que en una lista tambin se pueden incluir instancias de clases como JButton, JTextField, JCheckBox, e incluso JTextArea, que es un componente multilnea. Texto: As la clase JTextArea acta como sustituto de la clase TextArea del AWT, la clase JTextField sustituye TextField del AWT y se incorporan las clases JPasswordField que viene a ser equivalente al uso de JTextField junto con el mtodo setEchoChar(), y la clase JTextPane que permite que se presente el texto con diferentes fuentes de caracteres, colores, tamaos, etc. El cambio de las caractersticas del texto que se presenta se realiza a travs de estilos. Un estilo es un conjunto de caractersticas como son FontSize, ForegroundColor, isBold, isItalic, etc. y se manipula a travs de constantes. Swing trae un StyledEditorKit el cual dispone de un ActionListener que realiza todo lo que debe realizar el mtodo actionPerformed(), sin necesidad de intervencin del programador. Tool tips e Iconos: Casi todas las clases que se usan para crear los interfaces de usuario se derivan de JComponent. Esta clase contiene un mtodo llamado setToolTipText( String ). As que se puede indicar un texto de informacin virtualmente en cualquier lugar y lo nico que se necesita es invocar a este mtodo, indicando el texto correspondiente al mensaje. Se puede utilizar un objeto Icon dentro de un objeto JLabel, o cualquier objeto que derive de AbstractButton; incluyendo JButton, JCheckBox, JRadioButton y los diferentes tipos de JMenuItem. Se puede utilizar cualquier fichero gif. Para abrir ese fichero y convertirlo en imagen, simplemente se crea un objeto ImageIcon indicndole el nombre del fichero, y ya se puede utilizar en el cdigo el objeto Icon resultante. Pero tambin se puede utilizar el mtodo setIcon() para aadir o cambiar un icono. Mens: Se trabaja de la misma manera que en AWT mas el problema que se mostraba con AWT se soluciona colocando toda la informacin de cada men en un array de elementos de tipo Object de dos dimensiones, para facilitar la introduccin de cualquier cosa en el array. Este array est organizado de tal forma que la primera fila representa el nombre del men y las siguientes filas representan los elementos u opciones del men y sus caractersticas. Las filas del array no tienen por que ser uniformes, porque el cdigo sabe perfectamente donde se encuentra, as que no importa que las filas sean completamente diferentes.

Escalas y Barras de Progreso: Una escala permite al usuario introducir datos desplazando el marcador de la escala hacia un lado o hacia otro. La barra de progreso es muy simple de controlar, pero el objeto JSlider tiene muchas opciones, que van desde la orientacin hasta que las marcas sean ms o menos grandes. Tablas: La JTable controla cmo se presentan los datos, siendo el TableModel quien controla los datos en s mismos. Para crear una JTable habr pues que crear un TableModel antes, normalmente. Se puede implementar, para ello, el interfaz TableModel, pero es mucho ms simple heredar de la clase ayuda AbstractTableModel. Pestaas: el JTabbedPane, que puede manejar directamente todas las fichas, a base de pestaas y permite cambiar a cualquiera de ellas. addTab() crea una nueva pestaa y setSelectedIndex() indica el panel que se va a presentar en primer lugar al arrancar el programa; en este caso se selecciona uno de en medio para mostrar que no es necesario comenzar siempre por el primero. Tambin encontramos la utilizacin de arboles, incorporacin de dialogos predefinidos, paneles desplazables, manejo de teclado, adems de esto se trabaja con un ejecutable de javael cual tiene un objeto UIManager que determina el Look-and-Fee, es decir, la apariencia en pantalla y funcionamiento, que van a tener los Componentes Swing de ese ejecutable. El Look-and-Feel es la apariecia que se proporciona a los diferentes Componentes: botones, cajas de texto, cajas de seleccin, listas, etc, todo se trabaja independientemente de la plataforma en la cual se este trabajando. Este Look and Fee se puede personalizar mas, para esto se tendra que tener un amplio conocimiento de java swing. Con el fin de mostrar una pequea aplicacin de java swing desarrolle el siguiente programa en el cual encontr que me fue muy complicado manejar la parte de mens, mas el resto fue posible ya que es como una variacin de lo que vimos en clase. Adems pude aclarar mucho mejor como se trabaja el API y aunque aun sigue siendo algo complejo ya es mas entendible por mi.

Interfaz GUI en Java: Existen tanto en java como en Matlab, interfaces grficas denominadas GUIs, las cuales son usadas en java para la creacin de applets e interfaces grficas usando unos componentes llamados Swing. Un ejemplo de una aplicacin de este tipo, sera la siguiente:

Cuyas lneas de cdigo seran las siguientes:


import javax.swing.*; public class HelloWorldSwing {

private static void createAndShowGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }

Los componentes Swing se utilizan para que cada usuario cree sus propias interfaces. Los componentes de un GUI pueden entrar juntos en un contenedor; el siguiente ejemplo ilustra esa situacin

Esta SwingApplication crea cuatro componentes Swing que casi siempre se usan; un frame, o ventana principal (JFrame); un panel, (JPanel) ; un botn (JButton); una etiqueta (JLabel); El frame es un contenedor de alto nivel. Existe principalmente para proporcionar espacio para que se dibujen otros componentes Swing. Los otros contenedores de alto nivel ms utilizados son los dilogos (JDialog) y los applets (JApplet). El panel es un contenedor intermedio. Su nico propsito hacer mas simple el posicionamiento del botn y la etiqueta. Otros contenedores intermedios, como los paneles desplazables, (JScrollPane) y los paneles con pestaas (JTabbedPane), tpicamente juegan un papel ms visible e interactivo en el GUI de un programa. El botn y la etiqueta son componentes atmicos -- componentes que existen no para contener otros componentes Swing, sino como entidades auto-suficientes que representan bits de informain para el usuario. Frecuentemente, los componentes atmicos tambin obtienen entrada del usuario. El API Swing

proporciona muchos componentes atmicos, incluyendo combo boxes (JComboBox), campos de texto (JTextField), y tablas (JTable). Incluso el programa Swing ms sencillo tiene mltiples niveles en su rbol de contenidos. La raz del rbol de contenidos es siempre un contenedor de alto nivel. Este contenedor proporciona espacio para que sus componentes Swing descendentes se dibujen a s mismo. Cmo regla general, el panel de contenido contiene, directamente o indirectamente, todos los componentes visibles en el GUI de la ventana. La gran excepcin a esta regla es que si el contenedor de alto nivel tiene una barra de men, entonces sta se sita en un lugar especial fuera del panel de contenido. Para aadir componentes a un contenedor, se usa una de las distintas formas del mtodo add. Este mtodo tiene al menos un argumento -- el componente a aadir. Algunas veces se requiere un argumento adicional para proporcionan informacin de distribucin. Por ejemplo, la ltima lnea del siguiente cdigo de ejemplo especifica que el panel debera estar en el centro de su contenedor (el panel de contenido). frame = new JFrame(...); button = new JButton(...); label = new JLabel(...); pane = new JPanel(); pane.add(button); pane.add(label); frame.getContentPane().add(pane, BorderLayout.CENTER); Arbol de herencia de un GUI:

Como se ve en la figura, los tems de mens (incluidos los propios mens) son simples botones. Lo curioso en este caso, es como un men, si es slo un botn, muestra sus tems. La respuesta es que cuando se activa un men, automticamente trae un men desplegable que muestra sus tems.

Bibliografa:
http://jungla.dit.upm.es/~santiago/docencia/apuntes/Swing/ http://www.programacion.net/java/tutorial/swing/ http://www.programacionfacil.com/java/indice.htm http://decsai.ugr.es/~mgomez/teleco/20042005/practicaSwing/sesion1/practicaSwing.html

Você também pode gostar