Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Necesito hacer esto para el martes Pls ayudenme

Universidad de Carabobo
Facultad de Ingeniería
Departamento de Computación
Computación Avanzada
Asignación Práctica Nro. 1 (10%)

Campos de Texto Especiales

Para la introducción, en una aplicación GUI, de un texto se pueden emplear las clases JTextField y JPasswordField. Sin embargo, los campos de texto creados de esta manera no proporcionan la validación de los valores a introducir.
Por ello se requiere que desarrolle las clases necesarias para:

- La introducción de un número de cédula que debe cumplir los siguientes requisitos:
o El primer caracter sólo puede ser: V, v, E, e.
1) El segundo caracter debe ser un guión ( - ).
2)Los siguientes caracteres hasta completar 8 deben ser dígitos.

- La introducción de un número RIF que debe cumplir los siguientes requisitos:
1) El primer caracter sólo puede ser: V, v, E, e, J, j, G, g.
2)El segundo caracter debe ser un guión ( - ).
3)Los siguientes caracteres hasta completar 8 deben ser dígitos.
4)El carácter inmediato debe ser un guión ( - ).
5)El siguiente carácter debe ser un dígito.

- La introducción de un número entero, positivo o negativo, de máximo 6 dígitos. Los requisitos a cumplir son:

1) El primer carácter debe ser un signo +, un signo – o un dígito.
2) Los demás caracteres sólo pueden ser dígitos.

- La introducción de un número real, positivo o negativo, de máximo 8 dígitos en su parte entera y máximo 6 dígitos en su parte decimal. Los requisitos a cumplir son:

1) El primer carácter debe ser un signo +, un signo – o un dígito.
2) Debe tener, al menos, un dígito en la parte entera.
3)Puede no tener parte decimal.
4)Sólo puede aparecer un punto ( . ), que es el delimitador entre la parte entera y la real.

- La introducción de un password o contraseña que cumpla los siguientes requisitos:

1) Primer carácter una letra, mayúscula o minúscula.
2) Los caracteres restantes pueden ser: dígitos, letras o el guión de subrayado ( _ ).
3La longitud máxima es de 8 caracteres.

- La introducción de un campo para una descripción que no exceda los 30 caracteres.
Es necesario crear un paquete que contenga, al menos, una clase para el manejo de cada tipo de dato a introducir.

A continuación se le anexa la definición de la clase para la introducción de un número de cédula y un ejemplo del uso de objetos de este tipo.
Definición de la clase CampoCedula
package interfaz7;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CampoCedula extends JTextField {
int nroCaracteres;
public CampoCedula() {
super(2);
nroCaracteres = 0;
ControlTecla ctrlTecla = new ControlTecla();
this.setToolTipText( "Introduzca un número de cédula" );
this.addKeyListener(ctrlTecla);
}
// Clase interna privada para manejar eventos tipo KeyEvent
private class ControlTecla implements KeyListener { // Inicio ControlTecla
public void keyPressed(KeyEvent keyEvent) {
}
public void keyReleased(KeyEvent keyEvent) {
}
public void keyTyped(KeyEvent keyEvent) {
char caracter = keyEvent.getKeyChar();
if ( ( (caracter < '0') || (caracter > '9') ) &&
(caracter != KeyEvent.VK_BACK_SPACE) &&
(caracter != '-') &&
(caracter != 'V') &&
(caracter != 'v') &&
(caracter != 'E') &&
(caracter != 'e') )
{ // Verifica el uso de caracteres válidos
keyEvent.consume();
} // Fin verificación del uso de caracteres válidos
else
{
if (caracter == KeyEvent.VK_BACK_SPACE)
{ // Verifica si se presionó la tecla de retroceso
if (nroCaracteres > 0)
nroCaracteres -= 1;
} // Fin verificación de uso de la tecla de retroceso
else
nroCaracteres +=1;
if (nroCaracteres > 10)
{ // Valida que la cédula no tenga más de 10 caracteres
keyEvent.consume();
nroCaracteres -= 1;
} // Fin validación de la longitud de la cédula
if (nroCaracteres == 1)
{ // Determina si el primer caracter es V ó E
if ((caracter != 'V') && (caracter != 'v') &&
(caracter != 'E') && (caracter != 'e') &&
(caracter != KeyEvent.VK_BACK_SPACE))
{
keyEvent.consume();
nroCaracteres -=1;
}
} // Fin evaluación del primer caracter
else
if ( (nroCaracteres == 2) && (caracter != '-')
&& (caracter != KeyEvent.VK_BACK_SPACE) )
{ // Verifica que el segundo caracter sea un guión
keyEvent.consume();
nroCaracteres -=1;
}
else
{ // Verifica que a partir del 3er caracter solo haya dígitos
if ( (nroCaracteres > 2) &&
((caracter < '0') || (caracter > '9')) &&
(caracter != KeyEvent.VK_BACK_SPACE) )
{
keyEvent.consume();
nroCaracteres -=1;
}
} // Fin verificación de caracteres a partir del tercero
}
}
} // Fin ControlTecla
} // Fin de la clase CampoCedula
Definición de la clase Ventana
package interfaz7;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Ventana extends JFrame{
private JTextField tx1;
private JLabel etq1;
public Ventana() { // Inicio Constructor super( "Prueba de Campos de Texto Especiales"); Container contenedor = getContentPane(); contenedor.setLayout( null ); int x, y; x = 20; y = 20; etq1 = new JLabel ( "Campo de Cédula:" ); etq1.setHorizontalAlignment(SwingConstants.CENTER); etq1.setToolTipText( "Introduzca un número de cédula" ); etq1.setBounds(x, y, 120, 20); etq1.setOpaque(true); etq1.setBackground(Color.DARK_GRAY); etq1.setForeground(Color.WHITE); contenedor.add( etq1 ); tx1 = new CampoCedula(); // Uso de un objeto CampoCedula tx1.setBounds(x + 140, y, 80, 20); tx1.setForeground(Color.BLUE); contenedor.add ( tx1 ); ManejadorCampoTexto manejador = new ManejadorCampoTexto(); tx1.addActionListener( manejador ); setVisible( true ); this.setBounds(100,100, 500, 400); } // Fin Constructor
// Clase interna privada para manejar eventos tipo ActionEvent private class ManejadorCampoTexto implements ActionListener { // Inicio ManejadorCampoTexto public void actionPerformed ( ActionEvent evento) { String texto = ""; if (evento.getSource() == tx1) texto = "Campo de texto 1: " + evento.getActionCommand(); // Muestra en una ventana el texto introducido en el campo de texto JOptionPane.showMessageDialog(null, texto); } } // Fin ManejadorCampoTexto
} // Fin de la clase Ventana
Definición de la clase main
package interfaz7;
import javax.swing.JFrame;
public class Interfaz7 {
public static void main(String[] args) { Ventana a = new Ventana(); a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}
Puntuación:
a) Definición de clases 10 puntos
b) Ejecución de todos los requisitos 10 puntos NOTA:
 El desarrollo de la asignación puede ser en parejas.
 Incluir el nombre de cada autor en comentarios dentro del código

enero 20, 2013 | Unregistered CommenterLenin

Esta pregunta no está relacionada con Java EE. Te recomiendo publicarla en el foro Java SE.

enero 20, 2013 | Registered Commenterantoniovl

Eso lo puedes solucionar los metodos de String, por ejemplo substring(), busca en google ese es tu trabajo, si tienes dudas pregunta, no des tu tarea a otros... ya q nadie lo hara y muy aparte de eso te perjudica a ti mismo...

enero 21, 2013 | Unregistered CommenterLuis