Swing

12 entradas

Tabla seleccionable con Swing

Parece ser que están dando guerra las tablas xD A continuación les dejo un post con un ejemplo de tabla con cajas seleccionables y otros valores que son en éste caso enteros. Luego tenemos un botón con el que podemos recorrer la tabla (el modelo que representa los valores de la tabla) e ir borrando las filas que tienen la caja seleccionable seleccionada, valga la redundancia…  Al grano, vamos con el ejemplo: package swing;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.border.EmptyBorder;import javax.swing.table.DefaultTableModel;public class TablaSeleccionable extends JFrame { private static final long serialVersionUID = 1L; private JPanel contentPane; private JTable table; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { TablaSeleccionable frame = new TablaSeleccionable(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public TablaSeleccionable() { setTitle(“Tabla seleccionable by jnj”); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 604, 347); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(10, 11, 560, 227); getContentPane().add(scrollPane); String[] columnas = { “Los checkbox”, “Un dato”, “Otro dato” }; final DefaultTableModel modelo; modelo = new DefaultTableModel(null, columnas); // hay que […]

Java Swing 10: JTable segunda parte, un poco más sobre tablas

Siguiendo los minitutoriales de la serie Swing, he desarrollado éste post sobre tablas para aprender a usar un poco más las tablas. Vamos al grano.Introducción Es necesario: Entorno de Desarrollo. El JDK o JRE, yo he usado el JDK 1.7, pero ya Swing no sigue en desarrollo así que no tiene mucha importancia la versión que uses. Trato de explicar cómo poner cajas seleccionables (checkbox), listas desplegables (combobox) y cajas de texto formateado, en una tabla. En el ejemplo he puesto una caja que sólo admite un número de 3 dígitos. Más adelante lo vemos. Para manejar los datos puedes usar directamente el modelo de datos que autogenera un JTable, puedes usar un AbstractTableModel como aparece en muchos de los tutoriales que he encontrado por Internet, o puedes usar una implementación de DefaultTableModel, que internamente usa un vector con el que te permite añadir o borrar filas de forma dinámica. Yo he usado un DefaultTableModel que me ha parecido más interesante porque muchas veces necesitamos añadir o borrar datos de una tabla. El código fuente Descargar package swing;import java.awt.EventQueue;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.JFormattedTextField;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableCellEditor;import javax.swing.text.MaskFormatter;public class JavaSwing10JTable2 extends JFrame { private static final long […]

Java Swing 9: La madre del cordero, el JTable

Siguiendo con los minitutoriales de Swing, ha llegado la madre del cordero del manejo de datos. Tarde o temprano necesitamos visualizar, modificar, borrar o guardar datos. Podemos hacer formularios, recorrer tablas guardadas en variables ocultas, usar listas, al final la manera más simple de mostrar muchos de éstos datos es una tabla, que en Swing se llama JTable. Para seguir éste tutorial hace falta, un entorno de desarrollo (por ejemplo Eclipse), el JDK o el JRE, y un poco de paciencia xD Si eres un máquina entonces descárgate directamente el código y no te olvides de visitarme de vez en cuando, a ver si aumentan las visitas =) A saber Antes de empezar hay que saber que un JTable es un componente Swing, que va a visualizar unos datos que se almacenan internamente en una variable de tipo TableModel. No se recomienda usar directamente pero si no lo necesitamos para qué vamos a complicarnos más la vida en usar otros métodos. Lo he usado para no complicar el ejemplo. En el ejemplo se va a usar un DefaultTableModel el cual va a guardar referencia del TableModel que tiene la tabla. Entonces cuando se modifica, en éste caso añadiendo más filas, […]

Java Swing 8: El JTree

Volviendo de nuevo con un nuevo post sobre Swing, esta vez os dejo un componente un poco más complicado de entender, el JTree. Su uso con el Swing Designer es bien simple de ponerlo en un frame y dibujar su interfaz, pero cuando entremos en su estructura que tenemos para manejarlo necesitaremos tener conocimientos de lo que es un Tipo Abstracto de Datos (TAD para los amigos), y en concreto lo que es un árbol. Lo que se puede hacer y cómo se estructura internamente lo supongo por entendido. Si no es el caso mejor empezar por ver ésto, sino lo de a continuación puede convertirse en un jeroglífico. http://es.wikipedia.org/wiki/Tipo_de_dato_abstractoBúsqueda en Google sobre TADs árboles Construyendo el escenario Para éste tutorial he utilizado Eclipse Juno y la versión 7 update 9 del JDK. Lo primero es crear, dentro de Eclipse, en la ventana del explorador de proyectos, un nuevo proyecto de Java. Luego crear un nuevo JFrame con el asistente de Eclipse y ya tenemos el esqueleto del programa listo para empezar. Yendo al diseñador de formularios del Swing Designer le añades un Absolute layout al formulario para poder posicionar los componentes donde quieras del formulario, y entonces para éste […]

Java Swing 7: Formateando textos

¡Hola de nuevo! El tiempo pasa y no vuelve, el valor más preciado que tenemos, cuando a uno le falta es cuando lo tiene en cuenta. Estoy sacando tiempo de debajo de las piedras para seguir escribiéndoles. Vienen días de tormenta, hace mucho viento, parece que llueve pero no llueve, la prima de riesgo sube y baja, los políticos siguen con sus historias, y yo sigo con lo mío, así que aquí hoy os dejo algo más sobre Swing. En concreto sobre componentes para dar formato a textos y algo más. En éste minitutorial, voy a dar un repaso a los componentes que sólo admiten cierto tipo de valores como los JFormattedTextField. Otro componente interesante, el JEditorPane, que admite por defecto tres tipos de contenido: el texto plano normal y corriente de siempre (text/plain), texto enriquecido (text/rtf), o un documento en HTML (text/html). Y otra caja de texto, el JTextPane, que admite incluso otros componentes Swing como etiquetas, botones, etcétera… Para éste post he utilizado la versión JDK 7 update 9, y Eclipse Juno EE con el plugin Swing Designer. JFormattedTextField Éste componente hereda del JTextField, con lo que tiene los mismos métodos y se usa de manera parecida. La […]

Java Swing 6: Los componentes básicos

¡¡Feliz Año Nuevo!! Hace ya un tiempo que no escribo, así que voy a tratar de que éste año sea mejor que el anterior y comienzo por avanzar en mis investigaciones con Java, así que os dejo éste post por si a alguien le sirve… Sigo escudriñando los componentes de Swing, a ver cómo son los más simples, que no faltan en cualquier programa. Si lo que buscas es aprender rápido lo necesario para usarlos, éste es tu post xD He utilizado la versión 7 del JDK y Eclipse Juno. Si vas a seguir éste tutorial desde cero, lo suyo sería que hicieras un nuevo proyecto, crearas un nuevo JFrame con el generador de código de Eclipse y fueras al Swing Designer. Es decir, entras al modo de diseño para editarlo intentando hacer algo como la imagen de arriba, usando las herramientas que ves aquí abajo: Queda cada vez menos componentes de los presentados en el post ‘Java Swing 1’. Así que vamos al grano. JLabel Es una etiqueta. Con el diseñador ponemos el texto en el valor text, se puede cambiar en el código con la función nombreEtiqueta.setText(“Cadena”); aunque en el código fuente del ejemplo se ha puesto el […]

Java Swing 5: Preparando el menú para estas Navidades…

¡Hola de nuevo! Estoy pegándole un repaso a todo lo referente a los menús con Swing usando Eclipse. No deja de sorprenderme lo fácil y rápido que lo tenemos una vez que te has familiarizado con Eclipse, y en concreto con el Swing Designer. En pocos minutos tenemos nuestro esqueleto de la aplicación listo para codificar sus funciones o encajarlo con códigos ya hechos, cada uno para lo que lo necesite… Para todo ésto he usado la zona del Swing Designer que vemos a continuación: Jugando con los componentes donde pone ‘Menu’ podemos hacer todo lo referente. Un JMenuBar es una barra de menús, es la típica barra de menús que sale normalmente en la zona de arriba de un programa con Archivo, Opciones, Ayuda, etcétera… Tenemos que poner uno en el JFrame para entonces, dentro de éste JMenuBar, podamos poner los JMenu o JMenuItem que queramos. Dentro de un JMenu podemos poner otros JMenu o elementos finales de tipo JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem o en especial el JSeparator que simplemente es una línea separadora como la siguiente después de ‘Poner título’: Luego tenemos otro tipo de menú que es el JPopupMenu. Se usa igual que el JMenuBar pero se pone […]

Java Swing 4: Pestañas

Para hacer un programa con pestañas repartiendo así los componentes se hace fácil con Swing y Eclipse. En pocos minutos, usando el generador de código esqueleto y con el Swing Designer te genera código. Antes de poner el código, a saber, con el Swing Designer lo que tendremos será la ventana vacía, para poder posicionar los elementos tenemos que añadir en medio un Absolute layout. Luego dibujamos donde va a ir con el JTabbedPane. Después tenemos que añadir dos paneles encima del JTabbedPane, es decir, dos JPanel normales y corrientes. Las pestañas las creará el JTabbedPane cuando añadimos los paneles. Entonces ya tenemos las pestañas creadas, pero tenemos que decirle, en cada pestaña cómo vamos a posicionar los elementos y ponemos otros Absolute layout, uno en cada pestaña. Ahroa ya tenemos las pestañas y además podremos poner los elementos en la zona de la pestaña en que queramos, que en éste caso es una etiqueta JLabel en cada pestaña. Aquí está el código: import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTabbedPane;import javax.swing.border.EmptyBorder;// Ésta es la clase principal// es un JFrame…public class Principal extends JFrame { // el panel principal donde se pone todo private JPanel contentPane; // ejecuta primero […]

Logo de Java

Java Swing 3: Jugando con un JFrame, un JDialog y un JInternalPane

Ésto son un JFrame, un JDialog y un JInternalPane que van por un escritorio, y dice el JDialog al JFrame: – ¡El usuario no me hace caso! Interviene el JInternalFrame y le dice: – Yo lo tengo chungo, ¡¡hazte modal pues!! … Qué chiste más friki xDD Bromas aparte. En éste post voy a escribir sobre el manejo de las ventanas más básicas. Crear, abrir, cerrar, mostrar, esconder, cuádros de diálogo, ventanas internas o externas. Con el diseñador de ventanas (el Swing Designer), puedes ir construyendo tu propio ejemplo. Luego dejaré el ejemplo, códigos fuentes, con comentarios explicando los pasos. Tres clases de ejemplo Para el ejemplo he usado tres clases que he llamado: EjemploJFrame EjemploJDialog EjemploJInternalFrame Lo primero a hacer es tener la última versión de Eclipse y de Java, a ser posible. A fecha de hoy tengo la versión juno de Eclipse y de Java la 1.7 update 9. Y creo un nuevo proyecto llamado JavaSwing3JugandoConVentanas. Gran parte del código lo ha generado Eclipse, así que me he ahorrado mucho tiempo. En el explorador de proyectos, con el botón derecho, en la carpeta donde van a ir los código, le he dado a New… -> Other… Me ha […]

Java Swing 2: Crear ventanas con Eclipse

Para éste microtutorial he usado el Swing Designer de Eclipse y la versión 1.7 update 9 de Java, el JDK y el JRE. En Eclipse tenemos tenemos varias opciones para generar código esqueleto para nuestro programa. En la ventana del explorador de proyectos, en el lugar elegido le damos con el botón derecho a New -> Other… y nos saldrá una ventana como la siguiente con las opciones disponibles con respecto a Swing: En el árbol de Swing Designer tenemos las opciones para crear programas con ventanas Swing, valga la redundancia. Todos los códigos generados con el Swing Designer también se pueden crear a mano y se pueden llevar a otros entornos de desarrollo y te van a funcionar. Ésto lo digo porque no ocurre siempre, según en qué entorno de desarrollo estés, a veces pasa que si te sales de él ya no te sirven los códigos porque se les han puesto “extras” que te atan a ellos. Ésto no te va a pasar con los Swing en Eclipse, o por lo menos yo no me encontrado con éste problema. Vamos al grano… Application Window Si elegimos una Application Window nos va a crear la clase siguiente: package pruebasSwing; […]

Java Swing 1: A vista de pájaro

En éste post, espero dar un vistazo general al paquete de clases de Java de Swing, en concreto a la versión estándar 1.7 update 9. En la fecha en que escribo ésto, los Swing ya no están en desarrollo, con lo que no se van a añadir nuevas funcionalidades, ni componentes. En la web de Oracle, podemos ver la jerarquía completa del paquete javax.swing en la documentación original, aquí teneis el árbol de la jerarquía de clases: http://docs.oracle.com/javase/7/docs/api/javax/swing/package-tree.html Casi todas las clases que hay para crear nuestra interfaz de usuario van a empezar por J, como JFrame, JDialog, JButton, JLabel, etcétera… Ya tengo instalada la versión del JDK y del JRE más nueva ahora mismo para asegurarme de que tengo al día el paquete de clases. Así pues, la ayuda contextual de Eclipse me muestra un listado de todos éstos componentes: Tenemos 46 clases en éste listado, de las cuales la clase con la que se contruyen todas las demás clases visuales es JComponent. El resto de clases de Swing que no comienzan por J, ayudan o nos sirven de herramientas para éstas. Quitando la JComponent, nos quedan 45 clases que “dibujan” nuestra interfaz gráfica. Estado actual Swing se contruyó […]

Hola Mundo con Swing y Eclipse

Aquí tienen cómo crear una primera aplicación gráfica en Java usando Swing y Eclipse. El ejercicio clásico ¡Hola Mundo! usando una tecnología que nos brinda Java: Swing. Y para verlo, el entorno de desarrollo elegido ha sido Eclipse. Curioseando qué tal van los desarrollos, con respecto a las interfaces gráficas de usuario (llamadas GUI para los amigos), veo que tengo otra nueva actualización del Window Builder. El Window Builder es un conjunto de plugins de Eclipse que nos van a permitir hacer GUIs en Java sin gastar casi tiempo. A fecha de hoy tengo la versión Juno de Eclipse, y me acabo de instalar el plugin Swing Designer que está disponible dentro del propio Eclipse, en la famosa opción Help -> Install New Software. Instalada la versión 1.5.1 del Swing Designer, me he puesto manos a la obra. En el Explorador de Proyectos, donde estés creando tu aplicación Java, le das con el botón derecho del ratón a New -> Other… Y verás una ventana como la siguiente donde puedes elegir todo el tipo de ficheros, clases, o lo que sea que quieras hacer: Se parece a Visual Studio, NetBeans o IDEs similares ¿verdad? Personalmente no creo que Eclipse tenga nada […]