Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
restrigir JtextField para solo numeros
Enviado por locojava2005 el día 15 de julio de 2005
quiero saber como hagó pa que un JTexfield solo me RECIBA numeros, osea cuando oprima una letra u otro caracter no se pinte..... he leido acerca de una clase que se llama JTextFormated... o algo ai creo que es para dar formato(mascara) a los JTextFields........ yo uso el netBeans4.0...
La más sencilla es usar un JFormattedTextField al que pases un MaskFormatter en el constructor que sólo admita números. Te lo pongo un poco de memoria, pero puede ser algo como esto
MaskFormatter mascara = new MaskFormatter("0123456789"); // Debes añadir ademas los signos de puntuacion y signos si quieres.
JFormatedTextField editor = new JFormattedTextField(mascara);
public class JTextFieldFilter extends PlainDocument {
public static final String LOWERCASE = \"abcdefghijklmnopqrstuvwxyz\";
public static final String UPPERCASE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";
public static final String ALPHA = LOWERCASE + UPPERCASE;
public static final String NUMERIC = \"0123456789\";
public static final String FLOAT = NUMERIC + \".\";
public static final String SPECIAL = \"@#$%&^*()-\";
public static final String ALPHA_NUMERIC = ALPHA + NUMERIC;
public static final String ALPHA_NUMERIC_SIN_ESPACIOS = ALPHA + NUMERIC +\".\";
public static final String ALPHA_NUMERIC_ESPECIALES = ALPHA + NUMERIC + SPECIAL;
sudoku en java(validaciones en lkas filas y las columnas)
Enviado por joand zerpa el día 23 de junio de 2008
hoal mimi como estas,preciosa estoy un poco fregado porque me mandaron a hacer el famoso sudoku, aunque ya tengo la parte grafica me faltan las validaciones y que no contegan caracteres a la hora de ingresar el numero, y que solo tome un solo numero, pero el problema esta es que lo mandaron a hecer con botones,quieres ayudarme
Para que sólo permita escribir números en el jTextField:
jTextField.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!((Character.isDigit(c) ||
(c == KeyEvent.VK_BACK_SPACE) ||
(c == KeyEvent.VK_DELETE)))){
getToolkit().beep();
e.consume();
}
}
});
Para que sólo permita escribir n caracteres en el jTextField (la n que pasamos como segundo parametro a limitador de caracteres es el número limite deseado):
public class LimitadorCaracteres extends PlainDocument {
/**
* El editor del que estamos limitando caracteres.
*/
private JTextField editor;
/**
* Número máximo de caracteres que deseamos en el editor.
*/
private int numeroMaximoCaracteres;
/**
* Crea una instancia de LimitadorCaracteres.
*
* @param editor Editor en el que se quieren limitar los caracteres.
* @param numeroMaximoCaracteres Número máximo de caracteres que queremos
* en el editor.
*/
public LimitadorCaracteres(JTextField editor, int numeroMaximoCaracteres)
{
this.editor=editor;
this.numeroMaximoCaracteres=numeroMaximoCaracteres;
}
/**
* Método al que llama el editor cada vez que se intenta insertar caracteres.
* El método comprueba que no se sobrepasa el límite. Si es así, llama al
* método de la clase padre para que se inserten los caracteres. Si se
* sobrepasa el límite, retorna sin hacer nada.
*/
public void insertString(int arg0, String arg1, AttributeSet arg2) throws BadLocationException
{
if ((editor.getText().length()+arg1.length())>this.numeroMaximoCaracteres){
// editor.setFocusable(false);// pasa al siguiente text field
return ;
}
super.insertString(arg0, arg1, arg2);
}