Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Manual JAVA Swing

Manual JAVA Swing

Published by Josune Lopetegi, 2015-01-21 02:09:34

Description: Manual JAVA Swing

Search

Read the Text Version

SWING y JFC (Java Foundation Classes)Window JWindow o JToolTipTrucos de Conversión a Swing Espacio vacíoAl menos con el aspecto y comportamiento por defecto (Java) los componentes Swing tienden a ser más anchos (esto esm contienenmenos espacio vacío), Para obtener un aspecto más esparcido. podríamos tener que añadir bordes vacíos a algunos componentes omárgenes a los componentes de texto. Convertir Código de DibujoHabla sobre cómo se debería mover el código de dibujo a paintComponent (y definitivament no a update), y el doble buffer esautomático ahora.Si nuestro código de dibujo crea un título o laterales alrededor del componente, debemos considerar reemplazarlo con un border. Porejemplo, podemos crear fácilmente una caja alrededor de un grupo de componentes añadiendo los componentes a un JPanel yhaciendo que el panel tenga un borde.Si hemos implementadopaintComponent entonces debemos llamar primero a super.paintComponent. Si no es así, incluso si elcomponente es opaco no dibujará automáticamente su fondo.No debemos dibujar directamente en un JApplet porque será cubierto por el panel de contenido automático. En su lugar debemos usaruna clase separada para hacer el dibujado y añadirlo al panel de contenidos del applet.Trucos de Conversión a Específicos de Componentes Convertir AppletsCómo se mencióno en el Paso 7: Cambiar las llamadas a los método add y setLayout, los programas AWT añaden componentesdirectamente al objeto Applet y seleccionan directamente el controlador de distribución del applet. Por otro lado, los applets Swing,añaden componentens y seleccionan el controlador de distribución sobre el panel de contenidos del JApplet. Por eso, para convertirapplets, debemos hacer que el código fuente cambie lo que se describió en esa sewcción.Además, mientras que FlowLayout es el controlador de distribución por defecto para los applets AWT, BorderLayout los es para losapplets Swing. Esto tiene dos repercusiones. 1. Si queremos usarun FlowLayout, la versión Swing de nuestro programa debe usar setLayout sobre el panel de contenido para especificarlo. 2. Si específicamos BorderLayout en nuestro applet AWT, podemos eliminar la sentencia setLayout de la versión Swing.No debemos dibujar directamente sobre un JApplet (realmente ni sobre cualquier contenedor de alto nivel) porque será cubierto por elpanel de contenido del applet. La solución es tener un componente personalizado para hacer el dibujo y añadirlo al panel de contenido.Puedes ver las instrucciones para convertir canvas, en ella encontrarás trucos para elegir una clase de componente personalizado, ycómo mover el código de dibujo al método apropiado. Convertir Canvas (Componentes Personalizados)Antes de convertir un componente personalizado, debemos chequear si se puede utilizar un componente estandard de Swing. Porejemplo, si nuestro componente personalizado simplemente muestra una imagen, quizás algún texto, podríamos usar una EtiquetaSwing. Si nuestro componente personalizado implementa un botón con una imagen, podemos usar un Botón Swing en su lugar. Sihemos implementado un árbol o una tabla, podremos usar un Tree Swing o una tabla Swing.Si ningún componente Swing tiene la funcionalidad que necesitamos, recomendamos cambiar la superclase de nuestro componentepersonalizado de Canvas a JPanel. Luego debemos mover el código de dibujo desde paint o update a un método llamaodpaintComponent. En la parte superior de este método, deberíamos insertar super.paintComponent(g). Podremos eliminar todo elcódigo relacionado con el doble buffer, ya que Swing lo proporciona de forma automática.Otras superclases, como Component JComponent también podrían ser factibles. Extender JComponent en lugar deComponent/Container nos ofrecerá el doble buffer automáticamente. Extender JPanel en vez de JComponent ofrece dos cosas:dibujo automático del fondo (lo que podemos desactivar usando setOpaque(false)) además de la habilidad de usar bordes para dibujarlos laterales de los componentes. Convertir Choices - 201 - Juan Antonio Palos






Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook