Entradas

Mostrando entradas de 2015

Binding. Enlazar componentes en Netbeans.

Imagen
Enlazar JSlider / JTextField:

Las propiedades importantes de JSlider en Netbeans son:

majorTickSpacing: Número de valores entre dos marcasmaximun: Valor máximominimun: Valor mínimopaintLabels: Muestra el valor debajo de cada marcapaintTicks: Muestra una marca según el majorTickSpacingpaintTrack: Dibuja la linea para ver la longitud de desplazamiento

Enlazar el objeto seleccionado de un ComboBox con una serie de campos para su edición:



En la pestaña Advanced de Bind podemos indicar como será el modo de actualización de los datos:
Lectura/escritura.Lectura desde la fuente.
Código proyecto.

javax.swing.JTable

Es un componente que nos permite mostrar una serie de datos en columnas.

Algunas propiedades importantes de Netbeans son:
model: Modelo que usa el componente para mostrar datos.selectionModel: Modo de selección simple o múltiple.
Al pulsar sobre la propiedad model Netbeans nos ofrece un asistente que nos ayuda a la hora de crear tablas.

Lo más fácil es crear nosotros mismos un modelo personalizado extendiendo de AbstractTableModel y establecerlo como modelo de nuestra tabla. Esta tabla tendrá 3 columnas:
Un campo de entrada de texto, por defecto es un JTextField. No hay que hacer nada particular para que aparezca o indicar en el modelo que el tipo de clase es un String.Un JCheckBox (true/false). Indicando en el modelo que el tipo de clase es un Boolean lo muestra.Un JComboBox. Hay que indicar en el modelo que el tipo de clase es un JComboBox y al inicializar la tabla establecer en esa columna un TableCellEditor específico. Por suerte es bastante simple. Más adelante se muestra.
Código d…

javax.swing.JList

Imagen
JList es un componente que contiene una lista de objetos. Es parecido a JComboBox, pero posee algunas diferencias:
Se utilizan cuando se quiere ver varios elementos de la lista a la vez.Se puede seleccionar uno o varios elementos a la vez.
Para trabajar con este componente es necesario establecerle un modelo (Model). Una clase modelo es la que contiene los datos a representar en la interfaz gráfica. Los cambios en el objeto modelo actualizan automáticamente los cambios en la interfaz gráfica. Básicamente un modelo contiene una lista de objetos a mostrar en la lista y una serie de operaciones que podemos realizar sobre los objetos, como insertar, eliminar, etc.... Existen clases ya definidas para realizar este trabajo como DefaultListModel.

Las propiedades importantes en Netbeans son:
model: Modelo que usa el componente para mostrar datos.selectionMode: El modo de selección, simple o múltiple.
Propiedades de JList en Netbeans:



Métodos más usados de DefaultListModel:
addElement(E anObject)

javax.swing.JComboBox

Es un componente que contiene una lista de objetos. Inicialmente solo muestra uno, y al seleccionarlo nos muestra los demás objetos con una barra de desplazamiento si se excede el límite de objetos que puede mostrar.

Para trabajar con este componente es necesario establecerle un modelo (Model). Una clase modelo es la que contiene los datos a representar en la interfaz gráfica. Los cambios en el objeto modelo actualizan automáticamente los cambios en la interfaz gráfica. Básicamente un modelo contiene una lista de objetos a mostrar en el comboBox y una serie de operaciones que podemos realizar sobre los objetos, como insertar, eliminar, etc.... Existen clases ya definidas para realizar este trabajo como DefaultComboBoxModel.

Algunas propiedades mostradas en Netbeans son:
maximumRowCount: Máximo número de filas a mostrar al seleccionarlo.model: Modelo que usa el componente para mostrar datos.editable: Si true, el usuario puede introducir valores.
Métodos más usados de DefaultComboBoxMode…

Ejemplo: componentes básicos Swing en Netbeans

Imagen
Ejemplo componentes básicos.






Bajar código del proyecto

javax.swing.JPasswordField

Imagen
Es un campo de texto de una linea que oculta el texto para evitar que se lea.
Sus métodos más importantes son: Método Descripción getPassword() Obtener el String con el texto introducido. setText() Establecer un String con el texto a mostrar.
getPassword() devuelve un array de caracteres, si se quiere convertirlo a String puede hacer:
String pass = String.valueOf(password.getPassword());

Al seleccionar un passwordField la paleta Properties (abajo a la derecha) de Netbeans nos muestra todas las propiedades que podemos modificar, algunas de estas son:
editable: permite introducir o no introducir texto.font: la fuente, estilo y tamaño del texto.text: texto a mostrar en el componente.horizontalAlignment: alineación del texto, de izquierda a derecha, de derecha a izquierda...toolTipText: texto a mostrar al pasar el ratón por encima.echoChar: carácter a mostrar en lugar del real.

javax.swing.JTextArea

Imagen
Es un campo de texto de varias lineas. Los datos de entrada son tratados como un String. Es similar a un JTextField, de hecho los dos heredan de JTextComponent. Se usa para introducir texto más grande de lo normal.
Sus métodos más importantes son: Método Descripción getText() Obtener el String con el texto introducido. setText() Establecer un String con el texto a mostrar.

javax.swing.JRadioButton

Imagen
Es una casilla de selección donde solo puede estar activa una de ellas. Para que solamente se pueda seleccionar una opción entre varios radiobuttons hay que englobar los radiobutton en un componente ButtonGroup (javax.swing.ButtonGroup).

En Netbeans la propiedad buttonGroup del componente Radio Button asigna un Radio Button a un Button Group.

Sus métodos más importantes son: Método Descripción isSelected() Comprobar si está seleccionado. setSelected(boolean) Establecer una selección.
Al seleccionar un checkbox la paleta Properties (abajo a la derecha) de Netbeans nos muestra todas las propiedades que podemos modificar, algunas de estas son:
buttonGroup: grupo al que pertenece el radiobutton.selected: seleccionado o no seleccionado.text: texto a mostrar a la derecha del radiobutton.

javax.swing.JCheckBox

Imagen
Componente que posee dos estados, activado o no activado. Los datos de entrada o salida son tratados como un boolean.

Sus métodos más importantes son: Método Descripción isSelected() Comprobar si está seleccionado. setSelected(boolean) Establecer una selección. Al seleccionar un checkbox la paleta Properties (abajo a la derecha) de Netbeans nos muestra todas las propiedades que podemos modificar, algunas de estas son:
selected: activado o no activado.text: texto a mostrar a la derecha del componente.

javax.swing.JTextField

Imagen
Es un campo de entrada de texto de una linea. Los datos de entrada son tratados como un String.
Sus métodos más importantes son:
Método Descripción getText() Obtener el String con el texto introducido. setText() Establecer un String con el texto a mostrar.
Al seleccionar un textfield la paleta Properties (abajo a la derecha) de Netbeans nos muestra todas las propiedades que podemos modificar, algunas de estas son: editable: permite introducir o no introducir texto.font: la fuente, estilo y tamaño del texto.text: texto a mostrar en el componente.horizontalAlignment: alineación del texto, de izquierda a derecha, de derecha a izquierda...toolTipText: texto a mostrar al pasar el ratón por encima.

javax.swing.JLabel

Imagen
JLabel es una campo para mostrar un texto corto, una imagen o ambos. Al seleccionar un label la paleta Properties (abajo a la derecha) de Netbeans nos muestra todas las propiedades que podemos modificar, algunas de estas son:
font: la fuente, estilo y tamaño del texto.icon: el icono a mostrar.text: el texto a mostrar en el label.toolTipText: texto amostrar cuando el ratón esté sobre el.

Obtener archivos según su extensión (FilenameFilter)

/** * Listar archivos de una carpeta según su extensión. * Ejemplo: listFileByExtension("/home/juan/Video", ".srt", ".mp4"); * * @param filePath path de la carpeta donde listar los archivos. * @param extensions extensiones por las que filtrar. * @return lista de archivos. */ public static File[] listFileByExtension(String filePath, final String... extensions){ File[] listFiles = new File[0]; FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { boolean ret = false; for (String ext : extensions) { if(name.toLowerCase().endsWith(ext)){ ret = true; break; } } return ret; } }; File file = new File(filePath); if(file.exists()){ listFiles = file.listFiles(filter); } return listFiles; } 
File…

Componentes Container

Imagen
Los componentes contenedores agrupan uno o varios componentes dentro de si. Todos los componentes contenedores tienen asociados administradores de diseño para gestionar su layout. El layout es la forma en la que se ordenan y muestran los componentes dentro del contenedor. Todos los componentes contenedores tienen su propio administrador de diseño.
Los métodos básicos para trabajar con un contenedor son:
MétodoDescripciónsetLayout(LayoutManager manager)establece el layout.add(Component comp)añadir un elemento al contenedor.
A un contenedor se le puede añadir con el método add() otro contenedor con su propio administrador de diseño. En la siguiente imagen se muestran los componentes contenedores que Netbeans nos ofrece. Pestaña Palette, desplegable Swing Container.


El más utilizado es Panel que es una instancia de javax.swing.JPanel. En el podremos añadir los componentes Swing que necesitemos y asignarle el aspecto deseado para crear nuestra UI, ya sea asignándole un layout que los…

JFrame

Imagen
JFrame (javax.swing.JFrame) es la clase que creará la típica ventana con todo lo necesario como un título, botón de cerrar, etc. Cuando necesitemos crear una ventana lo que haremos será crear una clase que herede de JFrame, así tendremos toda la funcionalidad que necesitamos. La clase JFrame será la que mostrará todos los elementos Swing con los que trabajaremos. A la hora de crear componentes visuales como JFrames, JPanel, etc use el asistente de Netbeans, esto nos hará el trabajo más fácil ya que Netbeans posee un diseñador visual muy potente
Para crear un proyecto nuevo: Iniciamos Netbeans. File → New Project, Categories: Java, Projects: Java Application
Click Next. Project Name: Nombre del proyecto Project Location: donde guardaremos el proyecto Desmarcaremos Create Main Class, ya que no deseamos que nos cree una clase que será la que se ejecute al iniciar el proyecto con un método main.
Click Finish.
Ya tenemos un proyecto Java vacío. Ahora crearemos nuestro paquete principal y alg…

Introducción a Java Swing

Java posee clases para la creación y utilización de ventanas y componentes visuales.
La primera versión fue AWT (Abstract Window Toolkit). AWT utiliza componentes nativos lo que lo hace dependiente del sistema y que no se pueda ampliar si no se añaden en todas las plataformas.
La segunda versión fue Swing. Con Swing podemos crear una interfaz de usuario completa y profesional. Swing hace uso de AWT a bajo nivel.

JFC (Java Foundation Component) es el marco de trabajo Java para el diseño GUI, está formada por AWT y Swing.

A la hora de realizar nuestros ejemplos utilizaremos el IDE Netbeans. Con el realizaremos el diseño GUI de la interfaz de usuario y la programación. Posee un editor visual muy bueno que simplifica y agiliza mucho el diseño, sobretodo cuando no se tiene mucha experiencia.
Puede descargarlo de la página oficial de Netbeans https://netbeans.org/downloads.