Uso básico de elementos Swing con NetBeans – 08 – Uso básico de JOptionPane con eventos. Ej. 03.

En esta guía veremos otro de los elemento del JOptionPane, el showOptionDialog, tiene la función de mostrar una lista de opciones, normalmente la elección entre “Sí” “No”, “Aceptar” “Cancelar” u otras parecidas. El ejemplo que veremos nos muestra tres formas diferentes en que podemos configurar nuestro showOptionDialog.
Como siempre para facilitar el diseño debemos de crear paquetes, una para nuestros formularios y otra para las imágenes que se usan habitualmente, en cuestión de imágenes para botones es recomendable “png” con una dimensión 32x32 para los demás usos es a criterio de cada uno. En la imagen del diseño que se expone más abajo se especifican los puntos importantes.
Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJOptionPane3). En el ejemplo utilizaremos una lista seleccionable de forma individual utilizando JRadioButton, un botón personalizado para ejecutar nuestra selección y un campo de texto JTextField que reflejará nuestra selección. Dependiendo de nuestra selección se ejecutará un modelo de showOptionDialog, cada modelo tiene su utilidad en diferentes situaciones. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. 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)
Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.
Código Java
    private void inicio(){
//Agrupamos nuestros JRadioButton creados.
ButtonGroup group = new ButtonGroup();
group.add(jRB1);
group.add(jRB2);
group.add(jRB3);
//Incicamos que jRB1 este seleccionado de arranque.
jRB1.setSelected(true);
//Indicamos un valor para nuestra variable de clase tipo ImageIcon
img = createImageIcon("/com/swing/basic/img/usergroup.png");
}
//Método para crear ImageIcon pasando una url.
protected static ImageIcon createImageIcon(String path) {
//UsoJOptionPane es el nombre de la clase de nuestro jFrame.
java.net.URL imgURL = UsoJOptionPane3.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}

//Método que se ejecutará al precionar nuestro botón
private void ver(){
//Dependiendo que JRadioButton este marcado se ejecutará uno de los "if"
if(jRB1.isSelected()){
//La selección que se haga devuelve un entero.
//La guardamos en nuestra variable de clase creado "n"
//Si cerramos si elegir devuelve -1, si seleccionamos el primer elemento devuelve 0, siguiente 1;
n = JOptionPane.showConfirmDialog(
null,
"¿Te gusta el planeta marte?",
"Pregunta",
JOptionPane.YES_NO_OPTION);
if(n == 0){
rp.setText("Sí, me gusta el planeta marte.");
}
else if (n == 1){
rp.setText("No, no me gusta el planeta marte.");
}
}
else if(jRB2.isSelected()){
//Opciones personalizadas
Object[] opt = {"Sí, me gusta...",
"No, para nada...","No se responder..."};
n = JOptionPane.showOptionDialog(null,
"¿Te gusta el planeta marte?",
"Pregunta",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
opt,
opt[0]);
//Como hay tres opciones, el valor devuelte puede ser 0, 1 o 2.
if(n == 0){
rp.setText("Sí, me gusta el planeta marte.");
}
else if (n == 1){
rp.setText("No, no me gusta el planeta marte.");
}
else if (n == 2){
rp.setText("No se que responder...");
}
}

else if(jRB3.isSelected()){
Object[] opt = {"Sí, me agradan...",
"No, para nada..."};
n = JOptionPane.showOptionDialog(null,
"¿Te agradan los terrícolas?",
"Pregunta",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
img,//Icono personalizado
opt,//Opcion personalizada
opt[0]);

if(n == 0){
rp.setText("Sí, me agradan los terrícolas.");
}
else if (n == 1) {
rp.setText("No, no me agradan los terricolas.");
}
}
}
Antes de continuar veremos que método se llama desde el constructor y las importaciones necesarias.
El paso siguiente es establece un evento para nuestro botón, esto le dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. Si ya vieron alguna guía anterior a esta, podrán saber la ubicación habitual tanto para la lista de eventos, como también los métodos que hayamos creado al igual de la forma en que se implementan estos eventos y llamadas a métodos.
Código Java
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
ver();
}
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (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)

Uso básico de elementos Swing con NetBeans – 07 – Uso básico de JOptionPane con eventos. Ej. 02.

En esta guía veremos otro de los elemento del JOptionPane, el showOptionDialog, tiene la función de mostrar una lista de opciones, normalmente la elección entre “Sí” “No”, “Aceptar” “Cancelar” u otras parecidas. En este caso veremos una lista de opciones personalizadas.
Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJOptionPane2). La aplicación consiste en un botón que al presionar debe ejecutar un showOptionDialog, con la lista de opciones de la cual seleccionaremos una, cuya selección se reflejará en un cuadro de texto. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. 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)
Creamos nuestro único método en modo fuente. Los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.
Código Java
    //Método que se ejecutará al precionar nuestro boton "btn"
private void opcionDialogo(){
//Array de objetos para nuestras opciones personalizadas.
Object[] obj = {
"Tierra",
"Marte",
"Venus"};
//Se otendrá el valor tipo entero que retorne nuestra selección.
//si son tres valores, van desde el "0" cero. [0,1,2] según el orden.
//Los parámetros son los siguientes, según la documentación.
//showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)
opt = JOptionPane.showOptionDialog(null, "¿De qué planeta eres?", "Pregunta...",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
null, obj, obj[0]);
//Dependiendo del valor obtenido se mostrará un texto en nuesto JTextField
if(opt >= 0){
if(opt == 0){
rp.setText("Soy de la Tierra");
}
else if(opt == 1){
rp.setText("Soy de Marte");
}
else if(opt == 2){
rp.setText("Soy de Venus");
}
}
}
Antes de continuar veremos que método se llama desde el constructor y la importación necesaria en este caso.
El paso siguiente es establece un evento para nuestro único botón, esto le dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. Si ya vieron alguna guía anterior a esta, podrán saber la ubicación habitual tanto para la lista de eventos, como también los métodos que hayamos creado al igual de la forma en que se implementan estos eventos y llamadas a métodos.
Código Java
    private void btnActionPerformed(java.awt.event.ActionEvent evt) {                                         
opcionDialogo();
}
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (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)

Uso básico de elementos Swing con NetBeans – 06 – Uso básico de JOptionPane con eventos. Ej. 01.

En esta ocasión veremos uno de los elemento del JOptionPane, el showMessageDialog, la cual se utiliza normalmente para comunicar al usuario una información, error o advertencia, hay diferentes formas en la que se puede presentar este elemento, veremos algunas en una aplicación de ejemplo.
Como siempre para facilitar el diseño debemos de crear paquetes, una para nuestros formularios y otra para las imágenes que se usan habitualmente, en cuestión de imágenes para botones es recomendable “png” con una dimensión 32x32 para los demás usos es a criterio de cada uno. La imagen que utilizamos en este caso es de tamaño 32x32, la cual se mostrará como icono personalizado para uno de nuestros showMessageDialog.
Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJOptionPane). Para ejemplificar el uso de los showMessageDialog vamos a crear una aplicación que utilizar varios JRadioButton (cuya utilización básica vimos en guías anteriores) en donde cada opción nos presentará un ejemplo, para lanzar el showMessageDialog especificado marcamos la opción y presionamos el botón “Ver Ejemplo”. En la imagen siguiente vemos el diseño de nuestro formulario, cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. 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)
Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.
Código Java
    private void inicio(){
//Agrupamos nuestros JRadioButton creados.
ButtonGroup group = new ButtonGroup();
group.add(jRB1);
group.add(jRB2);
group.add(jRB3);
group.add(jRB4);
group.add(jRB5);
//Incicamos que jRB1 este seleccionado de arranque.
jRB1.setSelected(true);
//Indicamos un valor para nuestra variable de clase tipo ImageIcon
img = createImageIcon("/com/swing/basic/img/help.png");
}
//Método para crear ImageIcon pasando una url.
protected static ImageIcon createImageIcon(String path) {
//UsoJOptionPane es el nombre de la clase de nuestro jFrame.
java.net.URL imgURL = UsoJOptionPane.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}

//Según que opción se indique, se mostrará un tipo de diálogo....
private void ver(){
if(jRB1.isSelected()){
JOptionPane.showMessageDialog(null, "Titulo por defecto con icono por defecto…");
}
else if(jRB2.isSelected()){
JOptionPane.showMessageDialog(null, "Titulo personalizado, icono de advertencia...","Advertencia",JOptionPane.WARNING_MESSAGE);
}
else if(jRB3.isSelected()){
JOptionPane.showMessageDialog(null, "Titulo personalizado, icono de error...","Advertencia",JOptionPane.ERROR_MESSAGE);
}
else if(jRB4.isSelected()){
JOptionPane.showMessageDialog(null, "Titulo personalizado, sin icono...","Mensaje",JOptionPane.PLAIN_MESSAGE);
}
else if(jRB5.isSelected()){
JOptionPane.showMessageDialog(null, "Titulo personalizado, icono pesonalizado...","Advertencia",JOptionPane.INFORMATION_MESSAGE,img);
}
}
Antes de continuar veremos que método se llama desde el constructor y la importación necesaria en este caso.
El paso siguiente es establece un evento para nuestro botón “Ver Ejemplo”, esto le dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. Si ya vieron alguna guía anterior a esta, podrán saber la ubicación habitual tanto para la lista de eventos, como también los métodos que hayamos creado al igual de la forma en que se implementan estos eventos y llamadas a métodos.
Código Java
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
ver();
}
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (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)

Uso básico de elementos Swing con NetBeans – 05 – Uso básico de JComboBox con eventos. Ej. 02.

En esta guía vemos un segundo ejemplo del uso que se le puede dar a un JComboBox junto con eventos. Utilizaremos una lista de formatos de fecha y hora con la que podremos obtener los diferentes formatos de fecha y hora del sistema.
Como siempre para facilitar el diseño debemos de crear paquetes, una para nuestros formularios y otra para las imágenes que se usan habitualmente, en cuestión de imágenes para botones es recomendable “png” con una dimensión 32x32 para los demás usos es a criterio de cada uno. En la imagen del diseño que se expone más abajo se especifican los puntos importantes.
Diseñamos un formulario utilizando un JFrame, el primer elemento que agregamos es nuestro JComboBox al cual le agregaremos ítems utilizando un método que se ejecutará al arrancar el formulario. Agregamos un JTextField para presentar nuestro resultado en el formato que elijamos del JComboBox. Utilizamos JLabels para las etiquetas y el título. Cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. 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)
Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.
Código Java
//Método que arranca al ejecutar el formulario..
private void inicio(){
//El campo jtFecha debe estar deshabilitada
jtFecha.setEnabled(false);
//Un array de String con formatos de fecha y hora estándar.
String[] formato = {
"dd MMMMM yyyy",
"dd.MM.yy",
"MM/dd/yy",
"yyyy.MM.dd G 'en' hh:mm:ss z",
"EEE, MMM d, ''yy",
"h:mm a",
"H:mm:ss:SSS",
"K:mm a,z",
"yyyy.MMMMM.dd GGG hh:mm aaa"
};
//Iteramos el array de String y agregaremos cada item al jComboBox.
for (int i = 0; i < formato.length; i++) {
String string = formato[i];
jComboBox1.addItem(string);
}
}
//Método para manejar nuestros formatos de fechas y horas.
private void fomatoFecha(){
//try - catch para controlar las excepciones
try {
//Instanciamos el objeto Date del que obtendremos la fecha y hora del sistema.
Date hoy = new Date();
String f = jComboBox1.getSelectedItem().toString();
//Creamo un SimpleDateFormat y le pasamos como argumento el formato que elijamos del jComboBox
SimpleDateFormat sdf = new SimpleDateFormat(f);
//Obtenemos los datos de fecha y hora con el formato especificado
String fecha = sdf.format(hoy);
//Cargamos esos datos al campo designado.
jtFecha.setText(fecha);
} catch (IllegalArgumentException iae) {
jtFecha.setForeground(Color.red);
jtFecha.setText("Error: " + iae.getMessage());
}

}
Antes de continuar veremos que método se llama desde el constructor y la importación necesaria en este caso.
El paso siguiente es establece un evento para nuestro JComboBox, esto le dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. En la imagen más abajo se ve como es la implementación y seguido el código para los eventos. Si ya vieron alguna guía anterior a esta, podrán saber la ubicación habitual tanto para la lista de eventos como también los métodos que hayamos creado.
Código Java
    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
//Se llama al método fomatoFecha(), que hace todo el trabajo.
fomatoFecha();
}
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (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)

Uso básico de elementos Swing con NetBeans – 04 – Uso básico de JComboBox con eventos. Ej. 01.

En esta guía podremos ver el uso básico que se le puede dar a un JComboBox, pudiendo recuperar datos y relacionarla con eventos. Esta aplicación es una variación de la que vimos en la guía anterior (03), en este caso pondremos los elementos que se relacionan con una imagen en específico dentro del JComboBox y cada vez que hagamos una selección, se mostrará una imagen en el JLabel que designamos para el caso.
Como siempre para facilitar el diseño debemos de crear paquetes, una para nuestros formularios y otra para las imágenes que se usan habitualmente, en cuestión de imágenes para botones es recomendable “png” con una dimensión 32x32 para los demás usos es a criterio de cada uno. En la imagen del diseño que se expone más abajo se especifican los puntos importantes.
Diseñamos un formulario utilizando un JFrame, el elemento principal es el JComboBox a la cual le asignamos ítems desde el modo de diseño utilizando la propiedad “model”, estas son en orden como sigue: (Computadora, Llave, Usuario, Cliente, Nota). Otro elemento es un JPanel para agregar nuestro JLabel con imagen la cual podremos asignarle un icono en modo de diseño modificando la propiedad “icon” y otro JLabel en la parte superior para el título. Cada elemento tiene un nombre de variable como se especifica en la imagen, tomar en cuenta este punto ya que es necesario para referenciar los objetos. 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)
Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.
Código Java
//Este método permite especificar un índice para el jComboBox1 y cargar su imagen correspondiente.
private void inicio(){
jComboBox1.setSelectedIndex(0);
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/computer.png"));
}
//Método que nos permitira cargar una imagen como icono pasándole una url
protected 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;
}
}
Antes de continuar veremos que método se llama desde el constructor y la importación necesaria en este caso.
El paso siguiente es establece un evento para nuestro JComboBox, esto le dará la funcionalidad que necesitamos. El evento que normalmente se utiliza para este tipo de elementos es el ActionPerformed. En la imagen más abajo se ve como es la implementación y seguido el código para los eventos. Si ya vieron alguna guía anterior a esta, podrán saber la ubicación habitual tanto para la lista de eventos como también los métodos que hayamos creado.
Código Java
    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
//Dependiendo del índice se carga el elemento.
//El íncide empieza de "0", que será el primer elemento del jComboBox
if(jComboBox1.getSelectedIndex() == 0){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/computer.png"));
}
else if(jComboBox1.getSelectedIndex() == 1){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/key.png"));
}
else if(jComboBox1.getSelectedIndex() == 2){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/userr.png"));
}
else if(jComboBox1.getSelectedIndex() == 3){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/client2.png"));
}
//También es posible obtener el elemento seleccionado para comparar con cierto valor.
else if(jComboBox1.getSelectedItem().toString().equals("Nota")){
imgLabel.setIcon(createImageIcon("/com/swing/basic/img/note.png"));
}
}
En este punto ya podremos ejecutar nuestro formulario y comprobar su funcionalidad. (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)