Foro de elhacker.net

Programación => Java => Mensaje iniciado por: sapito169 en 2 Agosto 2008, 23:00 pm



Título: solo introducir letras
Publicado por: sapito169 en 2 Agosto 2008, 23:00 pm
bueno lo que quiero hacer es crear un textfield en el que solo se le pueda poner letras
es decir no simbolos como !"·$%&/()=?¿
lo e intentado con esto

Código:
package project1;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.UIManager;

public class Application1 {
    public Application1() {
        JFrame frame = new Frame1();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = frame.getSize();
        if (frameSize.height > screenSize.height) {
            frameSize.height = screenSize.height;
        }
        if (frameSize.width > screenSize.width) {
            frameSize.width = screenSize.width;
        }
        frame.setLocation( ( screenSize.width - frameSize.width ) / 2, ( screenSize.height - frameSize.height ) / 2 );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        try {
            //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            e.printStackTrace();
        }
        new Application1();
    }
}

Código:
package project1;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Robot;
public class Frame1 extends JFrame {


    private JTextField jTextField1 = new JTextField();

    public Frame1() {
        try {
            jbInit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        this.getContentPane().setLayout( null );
        this.setSize( new Dimension(400, 300) );
        jTextField1.setBounds(new Rectangle(70, 75, 145, 35));
        jTextField1.addKeyListener(new KeyAdapter() {
                    public void keyPressed(KeyEvent e) {
                        jTextField1_keyPressed(e);
                    }
                });
        this.getContentPane().add(jTextField1, null);

    }

    private void jTextField1_keyPressed(KeyEvent e) {
    Character caracter =e.getKeyChar();
    if(caracter.isDigit(caracter)){
        Robot robotsito=null;
        try{
            robotsito=new Robot();
            robotsito.keyPress(8);
        }
        catch(Exception ex){
           
        }
    }
    }
}

pero solo me evita poner numeros


Título: Re: solo introducir letras
Publicado por: Casidiablo en 2 Agosto 2008, 23:36 pm
Yo de ti, uso isLetter() para ver si es letra o no :P

Un saludo!


Título: Re: solo introducir letras
Publicado por: sapito169 en 3 Agosto 2008, 02:06 am
sory ya lo ise
este esel codigo

    private void jTextField1_keyTyped(KeyEvent e) {
    Character c =e.getKeyChar();
     
    boolean vv=Character.isLetter(c);
    boolean va=(c+"").equals(" ");
    //||
    if(!(vv||va)){
        e.consume();
        this.getToolkit().beep();
    }
    }