jueves, 6 de diciembre de 2012
Java: Swing: AWT: JButton y ActionListener
Francisco
10:40
action
,
actionlistener
,
botones
,
gui
,
input
,
java
,
jbuton
,
jframe
,
jlabel
,
jtextfield
,
por: Francisco Vargas
,
programación java
,
swing
3 comentarios
:
Introducción
Los JButton, pues no hay mucho que decir son botones que se agregan en nuestro Frames para que ejecuten una acción al ser presionados por el Usuario.
Desarrollo
Primero tenemos que agregar la librería:
import javax.swing.JButton;
Ahora vamos a crear nuestro método para el botón:
private JButton verBoton() { //Inicializamos el botón JButton boton = new JButton(); //agregamos texto al botón boton.setText("Botón"); //agregamos coordenadas boton.setBounds(50, 50, 100, 50); //le damos una tipografía boton.setFont(new Font("Arial", 1, 18)); //le damos un color a la fuente boton.setForeground(new Color(25,85,255)); return boton; }
Con eso tendremos un botón con las letras azules (el color no es muy bonito pero es para que se aprecie el cambio). Nuestro botón si lo presionamos, no pasa nada entonces vamos a implementar una interface para que puedan ser "escuchados", con ser escuchados me refiero a que realicen algo cuando se les presione.
public class MiClase extends JFrame implements ActionListener {//nuestro código}
Cuando implementamos ActionListener tenemos que colocar el método de esta interface de lo contrario nos va a mostrar un error, para los que usan un IDE es muy fácil porque lo coloca automáticamente, pero para los que no, acá está el método que tenemos que colocar:
@Override public void actionPerformed(ActionEvent e) { }
En este método tenemos que colocar las acciones que van a ejecutar, en este caso nuestros botones.
Vamos a hacer un ejemplo reuniendo todo lo que vimos hasta ahora: JLabel, JTextField y JButton, vamos a escribir algo en un campo de texto y lo vamos a pasar (en mayúscula) a otro campo de texto que no se puede editar cuando presionemos un botón.
Aunque se vea muy simple, es para dar un ejemplo de como usar actionListener y bueno acá va el código comentado las partes que no se han visto antes:
import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; @SuppressWarnings("serial") public class JFrames extends JFrame implements ActionListener { //Ocupamos que nuestro botón y los jtextfield sean globales para poder acceder a ellos //por medio de actionPerformed private JButton boton; private JTextField jtfPalabra; private JTextField jtfPalabraPasada; public JFrames() { add(verBoton()); add(getPalabra()); add(getIngresar()); add(getPalabraPasada()); inicializador(); } private void inicializador() { setSize(400, 300); setLayout(null); setTitle("Mi ventana"); setLocationRelativeTo(null); setVisible(true); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); } private JButton verBoton() { boton = new JButton(); boton.setText(">>>"); boton.setBounds(150, 200, 100, 50); boton.setFont(new Font("Arial", 1, 18)); //le incluimos la posibilidad de ser escuchado cuando se //le precione boton.addActionListener(this); return boton; } private JLabel getIngresar() { JLabel jlIngresar = new JLabel("Ingrese una palabra: "); jlIngresar.setBounds(30, 50, 150, 30); return jlIngresar; } private JTextField getPalabra() { jtfPalabra = new JTextField(); jtfPalabra.setBounds(180, 50, 100, 30); return jtfPalabra; } private JTextField getPalabraPasada() { jtfPalabraPasada = new JTextField(); jtfPalabraPasada.setBounds(180, 120, 150, 30); //Hacemos que lo que esté escrito acá no se pueda modificar jtfPalabraPasada.setEnabled(false); return jtfPalabraPasada; } @Override public void actionPerformed(ActionEvent e) { //Para hacerlo paso a paso vamos a crear unas variables tipo //string para almacenamiento temporal String palabra = ""; //si precionamos nuestro botón ejecutará una acción if (e.getSource() == boton){ //Obtenemos el valor del campo de texto palabra = jtfPalabra.getText(); //convertimos a mayúsculas palabra = palabra.toUpperCase(); //asignamos al otro jtextfield (el que no se puede editar) jtfPalabraPasada.setText(palabra); //limpiamos el campo en el que escribimos la palabra jtfPalabra.setText(""); } } }
Y como siempre la documentación de java con respecto a los temas tratados:
Botones: http://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html
ActionListener: http://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionListener.html
Conclusiones
Los botones y las acciones que se realizan al presionarlos son elementos que se utilizan en la gran mayoría de aplicaciones hoy en día.
El ActionListener es una interface que se implementa para poder asignarle una acción a un elemento del JFrame.
Botones: http://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html
ActionListener: http://docs.oracle.com/javase/8/docs/api/java/awt/event/ActionListener.html
Conclusiones
Los botones y las acciones que se realizan al presionarlos son elementos que se utilizan en la gran mayoría de aplicaciones hoy en día.
El ActionListener es una interface que se implementa para poder asignarle una acción a un elemento del JFrame.
Suscribirse a:
Enviar comentarios
(
Atom
)
muy bueno me ayudo bastante :) gracias
ResponderEliminarme gusta mucho java esta parte pero es que hay tantas clases que me vuelvo locooo
ResponderEliminarSi, existen clases para casi todo, pero hay que ir poco a poco entrando en java
Eliminar