lunes, 22 de diciembre de 2014

Java Swing básico - Campos de textos (JTextField)

Bienvenidos a otro tutorial mas de Java Swing, en el que veremos como usar JTextField, este nuevo control visual nos permite poner un campo de texto, en el que el usuario podrá ingresar datos. Nosotros podemos obtener esos datos y hacer lo que queramos con ellos:


En este tutorial construiremos un pequeño programa que le pida el nombre al usuario y cuando pulse un botón, se obtendrán los valores del JTextField, osea el nombre del usuario y mostraremos ese nombre en un JLabel.


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;


public class Ventana extends JFrame implements ActionListener{
 private JLabel labelNombre;
 private JTextField jtf;
 private JButton boton;
 public Ventana(){
  setTitle("Ventana java");//Titulo de la ventana
  setBounds(200,200,250,180);//Posicion y tamaño de la ventana: X, Y, Width, Height
  setResizable(false);//La ventana no se podra redimensionar
  setLayout(null);//Ningun layout, trabajaremos con coordenadas
  setDefaultCloseOperation(EXIT_ON_CLOSE);//Al cerrar la ventana se cerrara el proceso
  
  labelNombre = new JLabel();//Creamos el JLabel y no le pasamos nada como parametro
  labelNombre.setBounds(10,10,200,20);//Le ponemos una posicion
  add(labelNombre);//Lo agregamos a la ventana
  
  jtf = new JTextField();//Creamos un JTextField y no le pasamos nada como parametro
  jtf.setBounds(10,50,200,20);//Le ponemos una posicion
  add(jtf);//Lo agregamos a la ventana
  
  boton = new JButton("Listo");//Creamos un boton
  boton.setBounds(100,90,100,30);//Le ponemos una posicion
  boton.addActionListener(this);//Agregamos este boton al Listener
  add(boton);//Lo agregamos a la ventana
  
  setVisible(true);//Una vez creada la ventana, la hacemos visible
 }

 public void actionPerformed(ActionEvent e) {
  String valorTextField = jtf.getText();//Obtenemos el valor del JTextField "jtf"
  labelNombre.setText(valorTextField);//Cambiamos el valor del JLabel "labelNombre"
 }
 
 public static void main(String[] args) {
  new Ventana();
 }
}

Para usar JTextField tenemos que importar, aparte de lo que ya sabemos:
import javax.swing.JTextField;

Creamos 3 variables de clases:
        private JLabel labelNombre;
        private JTextField jtf;
        private JButton boton;

Para crear JTextField lo hacemos de la siguiente manera:
                jtf = new JTextField();//Creamos un JTextField y no le pasamos nada como parametro
  jtf.setBounds(10,50,200,20);//Le ponemos una posicion
  add(jtf);//Lo agregamos a la ventana

Cuando pulsemos sobre el botón, se ejecutara el método actionPerformed(), el cual sobrescribiremos:
public void actionPerformed(ActionEvent e) {
  String valorTextField = jtf.getText();//Obtenemos el valor del JTextField "jtf"
  labelNombre.setText(valorTextField);//Cambiamos el valor del JLabel "labelNombre"
 }
Si se fijan arriba, primero obtenemos el valor del JTextField con el método getText() y luego cambiamos el valor del JLabel con el método setText()

Si ejecutamos el siguiente código obtendremos algo como esto:


Algunos métodos útiles:

getText(); Con esto podemos obtener todo lo que haya escrito en el campo.

setText(); Con esto podemos cambiar el valor del mismo.

Hasta aquí el tutorial de hoy, los vemos en el próximo.
Recuerden comentar cualquier duda.


No hay comentarios:

Publicar un comentario