Uso básico de elementos Swing con NetBeans – 30 – Uso de JSplitPane, divisor de elementos.

Trabajando con JSplitPane desde Java

El JSplitPane es un elemento muy útil que nos permite dividir objetos distintos en uno o varios paneles redimensionables. En este ejemplo agregamos una Lista de nombres de imágenes PNG, que se cargarán al seleccionarlas con un clic y que se mostraran en un Label, como se ve en el diseño el JSplitPane muestra la lista en la parte izquierda y al label en la parte derecha en el medio el divisor redimensionable. Como vemos en el diseño también necesitamos dos JScrollPane, que se puede agregar arrastrando y soltando en el punto específico, la misma forma el elemento que la utilizan se arrastra y suelta en su interior. Es más fácil mover elementos de un lugar a otro utilizando el “Navegador” como se muestra en la imagen más abajo.

Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)

Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.

Código Java
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;//Importaciones

/**
*
* @author Ariel
*/

public class UsoJSplitPane extends javax.swing.JFrame {

/**
* Creates new form UsoJSplitPane
*/

public UsoJSplitPane() {
initComponents();
setLocationRelativeTo(null);//Centrar formulario
inicio();//Método de arranque
}
private DefaultListModel modelList;//Variable de clase.

Para el ejemplo utilizamos varios métodos que cumplen funciones específicas, la principal es “inicio” que nos permitirá inicializar la lista y configurar ciertas propiedades de cada elemento del diseño. Las propiedades de objetos se pueden editar en modo diseño, pero es más fácil entender cómo funcionan al hacerla en modo código.

Código Java
    private void inicio(){
//Incluye las fechitas de expanción rápida al JSplitPane
jSp.setOneTouchExpandable(true);
//Localización de divisor
jSp.setDividerLocation(150);
//Array de String con los nombres de archivos PNG que utilizaremos
//Cada uno puede hacer su propia lista.
String[] img = {"paisaje","bosque","kirito","Delete","Login","New","Save","Select","load","note","package",
"print","userr","aqua"};
//DefaultListModel para el JList
modelList = new DefaultListModel();
//Agregamos el array de String a la lista
for (String string : img) {
modelList.addElement(string);
}
//Específicamos el DefaultListModel para nuestro JList
jLt.setModel(modelList);
//Indicamos que el JLabel no muestre texto
jLb.setText(null);

/**
Imagen tipo JPG para indicar una imagen incial al JLabel
El resto de las imagenes utilizada son PNG
Las imagenes debemos de tenerlas en un paquete dentro del mismo proyecto...
O dentro del mismo paquete que nuestro JFrame, en tal caso solo indicamos el nombre y la extensión,
Caso contrario debemos de indicar toda la ruta...
* */

jLb.setIcon(createImageIcon("/com/swing/basic/img/" + "acercaFond" + ".jpg"));
}
//Método para actualizar la imagenes mostradas en el JLabel
private void actualizar(){
imageLabel(jLt.getSelectedValue().toString());
}
//Método que requiere como parámetro el nombre del la imagen para mostrar
private void imageLabel(String nombre){
jLb.setIcon(createImageIcon("/com/swing/basic/img/" + nombre + ".png"));
}

//Método que nos permitira cargar una imagen como icono pasándole una url
private static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = UsoJRadioButton.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}

En este ejemplo el único elemento que maneja eventos es la lista, la cual utiliza el MouseClicked. En las primeras guías de la serie vimos cómo se implementan los eventos desde el entorno de diseño, si hay dudas se pueden consultar esas entradas.

Código Java
    private void jLtMouseClicked(java.awt.event.MouseEvent evt) {                                 
actualizar();
}

Ahora sí, podemos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)

2 comentarios :

  1. El código está incompleto, tiene un montón de errores, puedes compartir el código

    ResponderEliminar
    Respuestas
    1. Que tal amigo. Todo el código necesario está descrito más arriba. Verifica los comentarios del código que tienen más datos. El ejemplo es funcional. Saludos.

      Eliminar