Código de la gestión de un evento KeyPressed con el siguiente contenido:

private void gestionaEntrada() {
        this.addKeyListener(new KeyAdapter() {

            @Override
            public void keyTyped(KeyEvent e) {
                char caracter = e.getKeyChar();
                switch (tipo) {
                    case "Entero":
                        if (!(Character.isDigit(caracter)) && (caracter != KeyEvent.VK_BACK_SPACE)) {
                            e.consume();
                        }
                        break;
                    case "Real":
                        if ((!Character.isDigit(caracter))
                                && ((caracter < '.') || (caracter > '.'))
                                && (caracter != KeyEvent.VK_BACK_SPACE)) {
                            e.consume();  // si la tecla pulsada no es un digito, un punto o BACK_SPACE ignorar el evento de teclado
                        } else {
                            if (getText().contains(".")) {
                                if ((!Character.isDigit(caracter))
                                        && (caracter != KeyEvent.VK_BACK_SPACE)) {
                                    e.consume();  // ignorar el evento de teclado
                                }
                            }
                        }
                        break;
                }
                
            }
        }