Java - JTextfield

 
Vista:

JTextfield

Publicado por José Luis Cetina (113 intervenciones) el 15/01/2006 05:34:35
Tengo un problema quisiera saber si existe alguna forma para "DELIMITAR" un JTextField a determinadas columnas, osea si se que se puede especificar un numero determinado de columnas pero si uno sigue escribiendo siguen saliendo los caracteres, lo que quiero saber es que si existe alguna forma de que por mas que yo aprete mas de un caracter nada mas se muestre el primero de ellos.
Lo que quiero es para hacer un pequeño juego para que la primera persona que aprete una tecla determinada del teclado (por ejemplo la tecla z para una persona y la tecla m para otra) haga una determinada accion.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:JTextfield

Publicado por Mario (24 intervenciones) el 15/01/2006 20:55:01
Hola

Te recomiendo que utilices en vez de JTextField un JFormattedTextField, que hace parte del paquete javax.swing. Este componente es visualmente igual al JTextField, con la unica y maravilla diferencia que soporta formatos, por que solo acepte numeros, o solo una cantidad ESPECIFICA de caracteres, o solo fechas, etc......

EJEMPLO:

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class DemoJFT extends JFrame{


public DemoJFT(){

setSize(400,400);
setTitle("Demo de JFormatedTextField");
setLayout(new FlowLayout());

try {

MaskFormatter msk = new MaskFormatter("***");
JFormattedTextField ftf = new JFormattedTextField(msk);
ftf.setColumns(10);

this.getContentPane().add(ftf);

}catch (Exception ex) {
System.out.println (ex.getMessage());
}


}

public static void main(String arg[]){
DemoJFT demo = new DemoJFT();
demo.setVisible(true);
}

}

En este ejemplo se agrega a un JFrame un JFormattedTextField que aceptar solo 3 caracteres (el numero de asteriscos) para obtener lo que el usuario agrego en vez de usar ftf.getText() como se haria en JTextField utilzar ftf.getValue() que es de la clase Object, luego haces casting y listo. EJ:

String texto = ftf.getValue().toString(); // o tambien
String text = (String)ftf.getValue();

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar