Uso básico de elementos Swing con NetBeans – 22 – Uso de Menú - JMenu.

JMenu, uso básico desde Java.

Para esta guía veremos el uso de los elementos Swing Menús, que incluyen la barra de menú, los ítems como los JMenuItem, JCheckBoxMenuItem y JRadioButtonMenuItem. Para el caso, agregamos un JList para almacenar los datos que se recoge cuando se utiliza con eventos.

Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsojMenu). Dentro del formulario agregamos una JList para almacenar los datos que se recoge al ejecutar un evento. 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)

Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.

Códigos utilizados en el constructor e importaciones.

Código Java
package com.swing.basic;

import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;//Importaciones
import javax.swing.JList;
import javax.swing.ListSelectionModel;

/**
*
* @author ECS
*/

public class UsoJMenu extends javax.swing.JFrame {

/**
* Creates new form UsoJMenu
*/

public UsoJMenu() {
initComponents();
setLocationRelativeTo(null);//Centrar el formulario
setTitle("Uso de JList.");
//Icono personalizado para el formulario
setIconImage(createImageIcon("/com/swing/basic/img/Login.png").getImage());
//Método de arranque.
inicio();
}
private DefaultListModel modelList;//Variable de clase.

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(){
jRBM.setSelected(false);
salir.setIcon(createImageIcon("/com/swing/basic/img/update.png"));
jCBM.setSelected(false);
//DefaultListModel para manejar las lista.
modelList = new DefaultListModel();
//Establecemos algunas propiedades de la lista
//Establecemos el modelo, nos permite agregar y eliminar elementos, etc.
jL.setModel(modelList);
//Intervalo de selección
jL.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jL.setSelectedIndex(0);
jL.setVisibleRowCount(8);
//Distribución vertical
jL.setLayoutOrientation(JList.VERTICAL);
}
//Método para obtener un archivo de imagen
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL;
imgURL = UsoJRadioButton.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}

Utilizamos el evento “ActionPerformed” para los menús. Si ya vieron alguna guía anterior a esta podrán saber cómo se agrega un evento, 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 jRBMActionPerformed(java.awt.event.ActionEvent evt) {                                     
modelList.addElement(evt);//Se egrega un elemento a la lista
//evt contiene las propiedades del evento del objeto
}

private void jCBMActionPerformed(java.awt.event.ActionEvent evt) {
modelList.addElement(evt);
}

private void salirActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
modelList.addElement(evt);
}

Llegado a esta parte podremos 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)

Uso básico de elementos Swing con NetBeans – 21 – Uso de JList. Ejemplo 2.

Manejo de JList en Java

En este ejemplo, a diferencia de la anterior modificaremos ciertas propiedades de la lista para que se ordene de forma horizontal y la posibilidad de seleccionar más de un elemento de la lista. Si ya realizaron en el ejemplo 1, podrán modificar solamente ciertas partes del código anterior.

Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJList). Agregamos a nuestro formulario un JList junto con dos botones de comando para agregar y eliminar datos y un campo de texto para ingresar datos. 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)

Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.

Códigos utilizados en el constructor e importaciones.

Código Java
package com.swing.basic;//Paquete de fuentes

import javax.swing.DefaultListModel;//Lista de importaciones
import javax.swing.ImageIcon;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;

/**
*
* @author ECS
*/

public class UsoJList extends javax.swing.JFrame {

/**
* Creates new form UsoJList
*/

public UsoJList() {
initComponents();
setLocationRelativeTo(null);//Centrar el formulario
setTitle("Uso de JList.");
//Icono personalizado para el formulario
setIconImage(createImageIcon("/com/swing/basic/img/Login.png").getImage());
//Método de arranque.
inicio();
}
private DefaultListModel modelList;//Variable de clase.

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(){
//Array de String para agregar al JList
//Si trabajamos con base de datos, puede ser un ArrayList
String nom[] = {"Java","PHP","C++","Basic","Bash","C#","Delphi","FoxPro","JavaScript",
"MATLAB","Objective-C","Python","Perl","Ruby","Visual Basic"};
//DefaultListModel para manejar las lista.
modelList = new DefaultListModel();
//Agregamos datos a la lista utilizando for
for (String string : nom) {
modelList.addElement(string);
}
//Establecemos algunas propiedades de la lista
//Establecemos el modelo, nos permite agregar y eliminar elementos, etc.
jL.setModel(modelList);
//Intervalo de selección
jL.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
jL.setSelectedIndex(0);
jL.setVisibleRowCount(-1);
//Distribución horizontal
jL.setLayoutOrientation(JList.HORIZONTAL_WRAP);
}

private void eliminar(){
//Método para eliminar elementos de la lista
//Se optiene el índice del los elementos a eliminar
//Los índices se almacenan en un array
int[] selectedIndices = jL.getSelectedIndices();
//Comprobamos que el array no este vacío
if(selectedIndices.length > 0){
//Recorremos el array en orden inverso.
for (int i = selectedIndices.length - 1; i >= 0; i--) {
//Se elimina cada {indice
modelList.remove(selectedIndices[i]);
}
}
else{
JOptionPane.showMessageDialog(null, "Selecciona los elementos a eliminar.");
}

}

private void agregar(){
//Método para agregar elementos a la lista
//Comprobamos que el campo de datos no este vacio
if(nomText.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Campo vacio.");
}
else{
//Utilizando el método enLista, comprobamos que no se repitan los datos.
if(enLista(nomText.getText())){
JOptionPane.showMessageDialog(null, "Nombre repetido..");
}
//Agregamos elemento y limpiamos campo.
else{
modelList.addElement(nomText.getText());
nomText.setText(null);
}
}
}

//Método para comprobar datos repetidos
protected boolean enLista(String name) {
return modelList.contains(name);
}

//Método para obtener un archivo de imagen
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL;
imgURL = UsoJRadioButton.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}

El paso siguiente es establece eventos para los botones, esto les 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 cómo se agrega un evento, 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 eliminarActionPerformed(java.awt.event.ActionEvent evt) {                                         
eliminar();
}

private void agregarActionPerformed(java.awt.event.ActionEvent evt) {
agregar();
}

Llegado a esta parte podremos 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)

Uso básico de elementos Swing con NetBeans – 20 – Uso de JList. Ejemplo 1.

Manejo básico de JList en Java

JList es uno de los tantos elementos que nos pueden facilitar ordenar y visualizar datos en un formulario, es esta oportunidad veremos cómo agregar, eliminar y verificar repetición de datos dentro de la lista.

Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJList). Agregamos a nuestro formulario un JList junto con dos botones de comando para agregar y eliminar datos y un campo de texto para ingresar datos. 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)

Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.

Códigos utilizados en el constructor e importaciones.

Código Java
package com.swing.basic;//Paquete de fuentes

import javax.swing.DefaultListModel;//Lista de importaciones
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;

/**
*
* @author ECS
*/

public class UsoJList extends javax.swing.JFrame {

/**
* Creates new form UsoJList
*/

public UsoJList() {
initComponents();
setLocationRelativeTo(null);//Centrar el formulario
setTitle("Uso de JList.");
//Icono personalizado para el formulario
setIconImage(createImageIcon("/com/swing/basic/img/Login.png").getImage());
//Método de arranque.
inicio();
}
private DefaultListModel modelList;//Variable de clase.

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(){
//Array de String para agregar al JList
//Si trabajamos con base de datos, puede ser un ArrayList
String nom[] = {"Ariel","Luís","Ana","Juan","Arnaldo","María","Perla"};
//DefaultListModel para manejar las lista.
modelList = new DefaultListModel();
//Agregamos datos a la lista utilizando for
for (String string : nom) {
modelList.addElement(string);
}
//Establecemos algunas propiedades de la lista
jL.setModel(modelList);
jL.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jL.setSelectedIndex(0);
jL.setVisibleRowCount(7);
}

private void eliminar(){
//Método para eliminar elementos de la lista
//Se optiene el índice del elemento seleccionado
int selectedIndex = jL.getSelectedIndex();
//Si selectedIndex es igual a -1, no hay elemento seleccionado
if(selectedIndex != -1){
modelList.remove(selectedIndex);
}
else{
JOptionPane.showMessageDialog(null, "Seleccione un elemento de la lista.");
}
}

private void agregar(){
//Método para agregar elementos a la lista
//Comprobamos que el campo de datos no este vacio
if(nomText.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Campo vacio.");
}
else{
//Utilizando el método enLista, comprobamos que no se repitan los datos.
if(enLista(nomText.getText())){
JOptionPane.showMessageDialog(null, "Nombre repetido..");
}
//Agregamos elemento y limpiamos campo.
else{
modelList.addElement(nomText.getText());
nomText.setText(null);
}
}
}

//Método para comprobar datos repetidos
protected boolean enLista(String name) {
return modelList.contains(name);
}

//Método para obtener un archivo de imagen
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL;
imgURL = UsoJRadioButton.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Archivo no encontrado: " + path);
return null;
}
}

El paso siguiente es establece eventos para los botones, esto les 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 cómo se agrega un evento, 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 eliminarActionPerformed(java.awt.event.ActionEvent evt) {                                         
eliminar();
}

private void agregarActionPerformed(java.awt.event.ActionEvent evt) {
agregar();
}

Llegado a esta parte podremos 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)

Uso básico de elementos Swing con NetBeans – 19 – Uso de JLabel.

JLabel, manejos básico desde Java

JLabel es uno de los elementos más simples en modo diseño, se utiliza en múltiples formas, como etiqueta, para mostrar imágenes, iconos, texto simple, etc. En esta ocasión veremos algunas propiedades básicas de este elemento.

Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJLabel). Le agregamos un JPanel al JFrame para tener un poco más organizado y delimitado los elementos, que en este caso solo serán tres JLabel, si el IDE es español completo se muestra como “Etiqueta”. 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)

Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. Agregamos algunas líneas de código en el constructo del JFrame que se explican con comentarios.

Códigos utilizados en el constructor e importaciones.

Código Java
package com.swing.basic;//Paquete de fuente

import javax.swing.ImageIcon;//Importaciones
import javax.swing.JLabel;

/**
*
* @author ECS
*/

public class UsoJLabel extends javax.swing.JFrame {

/**
* Creates new form UsoJLabel
*/

public UsoJLabel() {
initComponents();
setTitle("Uso de JLabel");//Título para el Formualario
//Icono personalizado para el formulario
setIconImage(createImageIcon("/com/swing/basic/img/Login.png").getImage());
//Centrar formulario
setLocationRelativeTo(null);
//Método que arranca con el formulario
inicio();
}
private ImageIcon ico;//Variable de clase

Métodos necesarios. En esta ocasión no utilizaremos eventos.

Código Java
    private void inicio(){
//Cambiando algunas propiedades del jLabel1
//Texto que muestra
jLabel1.setText("JLabel - Solo Texto");
//Texto de sugerencia o anuncio
jLabel1.setToolTipText("Solo Texto...");
jLabel1.setOpaque(false);

//Le asignamos un valor a nuestra variable de clase ico
ico = createImageIcon("/com/swing/basic/img/Save.png");

//jLabel2 con texto e icono
jLabel2.setText("Texto e Icono");
jLabel2.setToolTipText("Texto e icono...");
jLabel2.setIcon(ico);
//Ubicación del texto con relación al icono
jLabel2.setVerticalTextPosition(JLabel.BOTTOM);
jLabel2.setHorizontalTextPosition(JLabel.CENTER);

//jLabel3 solo con icono
jLabel3.setIcon(ico);
jLabel3.setText(null);
jLabel3.setToolTipText("Solo icono...");


}
//Método para obtener un archivo de imagen
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;
}
}

Llegado a esta parte podremos 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)

Uso básico de elementos Swing con NetBeans – 18 – Uso de JInternalFrame.

Utilización de JInternalFrame en Java

En esta ocasión veremos la utilidad que se le puede dar a un JInternalFrame. Crearemos un formulario JFrame la cual podrá contener a la vez múltiples formularios internos utilizando una clase preestablecida que extiende a JInternalFrame. Esta es una de las tantas formas en que se puede organizar una aplicación de escritorio.

Diseñamos un formulario utilizando un JFrame (Nombre del formulario JInternalFrame). Utilizamos una barra de menú simple para poder ejecutar el método que crea el Formulario interno. 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)

A continuación debemos de crear una clase externa la cual será la plantilla de nuestro formulario interno. Si no está en el mismo paquete que nuestro formulario debemos de importarla.

Código Java

import javax.swing.JInternalFrame;

//Clase disponible en oracle.com
public class MyInternalFrame extends JInternalFrame {
//Cuenta la cantidad de JInternalFrame
static int openFrameCount = 0;
//Marca la posición "x" e "y"
static final int xOffset = 30, yOffset = 30;

//Contructor para el JInternalFrame
public MyInternalFrame() {
/*Parámetros public JInternalFrame(String title, boolean resizable, boolean closable,
boolean maximizable, boolean iconifiable)
*/

super("Documento. Frame " + (++openFrameCount),
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
//Tamaño asiganado
setSize(300,300);
//Localización en la pantalla.
setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
}
}

Método único necesario.

Código Java
protected void frameUno(){
//Utilizamos nuestra clase MyInternalFrame creado
MyInternalFrame frame = new MyInternalFrame();
frame.setVisible(true);
//Se agrega al contenedor
desktop.add(frame);
try {
//Seleccionable
frame.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
}
}

Lista de las importaciones que debemos de tener para utilizar ciertos elementos en nuestro formulario. También el código que debe contener el constructor del JFrame.

Lista de Importaciones. El

import com.app.MyInternalFrame;
depende en que paquete este la clase. Tomar en cuenta.

Código Java
import com.app.MyInternalFrame;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JDesktopPane;

Códigos utilizados en el constructor.

Código Java
public JInternalFrame() {
initComponents();
setLocationRelativeTo(null);//Centrar el formulario
setTitle("Uso de JInternalFrame.");
int inset = 80;
//Dimensión del JFrame
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//parámetros setBounds(int x, int y, int width, int height)
setBounds(inset, inset,
screenSize.width - inset*2,
screenSize.height - inset*2);
//JDesktopPane será el contenedor del JInternalFrame
desktop = new JDesktopPane();
//Al ejecutar el formulario se crea el primer JInternalFrame ejecutando el
//método que la crea
frameUno();
//Agregamos desktop al JFrame
setContentPane(desktop);
//Posibilita mover el JInternalFrame en la pantalla
desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
}
JDesktopPane desktop;//Variable de clase

Para el menú utilizaremos el evento “ActionPerformed”, en guías anteriores de esta serie vimos como se implementan los eventos. Seguido el evento que llama a nuestro método.

Código Java
    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
frameUno();
}

Llegado a esta parte podremos ejecutar nuestro formulario. Como se ve en la imagen, es posible tener multitud de formulario dentro del JFrame, cada uno con sus propiedades específicas. (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)

Java básico 063. Función, calcular área de un triángulo utilizando fórmula de Herón

Ejercicio: Calcular área de un triángulo utilizando fórmula de Herón.

Código Java
public class AreaTriangulo{
public static void main( String[] args ){
/*
Calcular área de un triángulo utilizando fórmula de Herón
Lados a, b y c.
Semiperímetro fórmula: s = ((a+b+c)/2);
El Area: area = raiz(s * ((s-a)*(s-b)*(s-c)))
*/

double a;

a = area(5, 4, 4);
System.out.println("El área de un triangulo con los lados 5,4,4 es: " + a);

a = area(4, 4, 4);
System.out.println("El área de un triangulo con los lados 4,4,4 es: " + a);

a = area(5, 3, 4);
System.out.println("El área de un triangulo con los lados 5,3,4 es: " + a );

a = area(3, 3, 3);
System.out.println("El área de un triangulo con los lados 3,3,3 es: " + a );
}
public static double area( double a, double b, double c ){
double s = ((a+b+c)/2);
double area = (Math.sqrt(s * ((s-a)*(s-b)*(s-c))));
return area;
}
}

Uso básico de elementos Swing con NetBeans – 17 – Uso de LookAndFeel con JFrame e icono personalizado para formulario.

Utilización básica de LookAndFeel en Java

En esta guía veremos la forma de modificar de manera fácil el aspecto de nuestro formulario utilizando LookAndFeel, también le asignaremos un icono personalizado.
Diseñamos un formulario utilizando un JFrame (Nombre del formulario UsoJFrame). Utilizamos tres botones de comando para poder aplicar cada uno de los LookAndFeel, solo se mencionan tres, las más habituales, hay muchas más. También agregamos un botón de comando con la cual podremos salir del formulario sin utilizar el modo habitual. 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)
Antes de continuar vemos que importaciones debemos de tener para utilizar ciertos elementos en nuestro formulario.

Lista de Importaciones.

Código Java
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;

Códigos utilizados en el constructor.

Código Java
        //Centrar formulario
setLocationRelativeTo(null);
//Especificar un icono para nuestro formulario
setIconImage(new ImageIcon(ClassLoader.getSystemResource("com/swing/basic/img/Login.png")).getImage());
//Título para el formulario
setTitle("Uso de JFrame.");
En esta guía los códigos se ejecutarán desde el evento asignado a cada botón sin crea métodos. Para los botones como siempre se utiliza el evento “ActionPerformed”, en guías anteriores de esta serie vimos como se implementan los eventos. Seguido los eventos con la explicación de las líneas de código.
Código Java
    private void jWinActionPerformed(java.awt.event.ActionEvent evt) {                                     
//Se requiere try-catch, es predeterminado
try {
//Forma de localizar el LookAndFeel
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
//Entre comillas ("Windows") el nombre del LookAndFeel
if ("Windows".equals(info.getName())) {
//Asignamos el LookAndFeel
javax.swing.UIManager.setLookAndFeel(info.getClassName());
//Recargamos la el formulario para que se vea el cambio
SwingUtilities.updateComponentTreeUI(this);
//Se reagrupan los componentes
this.pack();
//Se sale del bucle for
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
}

private void jNimActionPerformed(java.awt.event.ActionEvent evt) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
SwingUtilities.updateComponentTreeUI(this);
this.pack();
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
}

private void jMetActionPerformed(java.awt.event.ActionEvent evt) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Metal".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
SwingUtilities.updateComponentTreeUI(this);
this.pack();
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(UsoJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
}

private void cerrarActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
Llegado a esta parte podremos 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)