He encontrado un gusto particular en el uso de los cuadros de dialogo para mis ejemplos, pero existe una mejor manera, la cual es el uso de una Ventana en Java. Seguiré con otra parte importante de la GUI, esto es el objeto Button. Para la creación de Botones en Java con Jbutton se hará uso de la clase JButton de la swing, también podemos usar la clase Button, pero esta ultima no tiene algunas opciones útiles que posee un JButton.
CREANDO BOTONES EN JAVA
El siguiente codigo contendra las lineas basicas para la creacion y utilizacion de los botones en una ventana, las lineas estan debidamente comentareadas, asi que alli podran encontrar el por que de cada bloque o linea:
Ver Codigo…
//librerias necesarias
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class GuiJava implements ActionListener{//implementando el listener de eventos
JButton bt1, bt2, bt3;//creando variables globales de los botones
public GuiJava(){//constructor de la clase
JFrame jf = new JFrame("Botones con Java");//creacion de ventana con el titulo
jf.setLayout(new FlowLayout());//Configurar como se dispondra el espacio del jframe
Dimension d = new Dimension();//objeto para obtener el ancho de la pantalla
//Instanciando botones con texto
bt1 = new JButton("Hola");
bt2 = new JButton("Que tal?");
bt3 = new JButton(" ;) ");
//agregando los botones a la ventana
jf.add(bt1); jf.add(bt2); jf.add(bt3);
//añadiendo el listener a los botones para manipular los eventos del click
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//finaliza el programa cuando se da click en la X
jf.setResizable(false);//para configurar si se redimensiona la ventana
jf.setLocation((int) ((d.getWidth()/2)+290), 50);//para ubicar inicialmente donde se muestra la ventana (x, y)
jf.setSize(400, 250);//configurando tamaño de la ventana (ancho, alto)
jf.setVisible(true);//configurando visualización de la venta
}
public static void main(String[] args) {
GuiJava gj = new GuiJava();//uso de constructor para la ventana
}
@Override
public void actionPerformed(ActionEvent e) {//sobreescribimos el metodo del listener
if(e.getActionCommand().equals("Hola")){//podemos comparar por el contenido del boton
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
if(e.getSource()==bt2){//podemos comparar por el nombre del objeto del boton
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
if(e.getSource()==bt3){//podemos comparar por el nombre del objeto del boton
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
}
}
Comenzando vemos que es necesaria la importación de las librerías, podemos simplificar las librerías como el siguiente ejemplo:
import java.awt.*;
import javax.swing.*;
Lo anterior no lo hago por cuestión de rendimiento, con esto quiero decir, que no es necesario cargar librerías que no usaremos, una de las ventajas de Netbeans corresponde a este punto, el agrega las librerías necesarias en cada clase. Una vez ejecutada la aplicación veremos lo siguiente:

Vemos lo que aparece cuando oprimimos el tercer botón.
PERSONALIZAR BOTONES
Ahora, podemos modificar ciertos atributos de estos objetos para hacerlos mas llamativos al usuario, o como también hacer ajustes en el margen del texto si vemos que el espacio es mucho, al igual que el anterior ejemplo el siguiente código esta comentareado:
Ver Código…
//librerias necesarias
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class GuiJava implements ActionListener{//implementando el listener de eventos
JButton bt1, bt2, bt3;//creando variables globales de los botones
JFrame jf = new JFrame("Botones con Java");//creacion de ventana con el titulo
public GuiJava(){//constructor de la clase
jf.setLayout(new FlowLayout());//Configurar como se dispondra el espacio del jframe
Dimension d = new Dimension();//objeto para obtener el ancho de la pantalla
//imagen para el boton
ImageIcon ic1 = new ImageIcon("src/guijava/imagen1.png");
//Instanciando botones con texto
bt1 = new JButton("Hola");
bt2 = new JButton("Tamaño");
bt3 = new JButton(ic1); //creamos el boton con una imagen
//margenes para texto en boton
bt1.setMargin(new Insets(3, 5, 3, 5));
bt2.setMargin(new Insets(1, 1, 1, 1));
//color de fondo del boton
bt1.setBackground(Color.orange);
//color de texto para el boton
bt2.setForeground(Color.blue);
//agregando los botones a la ventana
jf.add(bt1); jf.add(bt2); jf.add(bt3);
//añadiendo el listener a los botones para manipular los eventos del click
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//finaliza el programa cuando se da click en la X
jf.setResizable(false);//para configurar si se redimensiona la ventana
jf.setLocation((int) ((d.getWidth()/2)+290), 50);//para ubicar inicialmente donde se muestra la ventana (x, y)
jf.setSize(400, 250);//configurando tamaño de la ventana (ancho, alto)
jf.setVisible(true);//configurando visualización de la venta
}
public static void main(String[] args) {
GuiJava gj = new GuiJava();//uso de constructor para la ventana
}
@Override
public void actionPerformed(ActionEvent e) {//sobreescribimos el metodo del listener
if(e.getActionCommand().equals("Hola")){//podemos comparar por el contenido del boton
JOptionPane.showMessageDialog(null, e.getActionCommand());
}
if(e.getSource()==bt2){//podemos comparar por el nombre del objeto del boton
jf.setExtendedState(JFrame.MAXIMIZED_BOTH);//cambiamos el tamaño de la ventana
}
if(e.getSource()==bt3){//podemos comparar por el nombre del objeto del boton
JOptionPane.showMessageDialog(null, "Escogiste Guiño");
}
}
}
Una vez ejecutado veremos lo siguiente:

No ha sido una buena combinación de colores, pero bueno, la idea es mostrar que se puede modificar tanto el fondo como el colo de la letra, la imagen del botón es proporcional al tamaño real de la imagen, así que desean un tamaño acorde seria algo como 40px ancho y 40px alto. Ademas algo con respecto a la ventana, cuando seleccionemos el botón «Tamaño» veremos como se cambia el tamaño de nuestra ventana en java.
Si te ha gustado el post, compártelo, regala un like ó comenta 😉
¿Te ha resultado útil este artículo?
Demuestra tu apoyo dándole un pulgar arriba para seguir escribiendo SEO técnico.