cs_ahmedoo
Messages postés17Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention29 juillet 2010
-
20 juil. 2007 à 11:00
cs_ahmedoo
Messages postés17Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention29 juillet 2010
-
21 juil. 2007 à 13:48
salut j'ai un probleme avec la methode setText() de JTextfield ,en fait quand j'essaye
de modifier le text par setText() elle génere une exceptionn class cast exception
et merci d'avance pur votre aide.
voici une partie du pgm qui génère l'exception
if (o == rechercher) {
String n = numConge.getText().toString();
try {
System.out.println(n);
String q2 = "select mvc_idagent,mvc_adres,mvc_ntel,tc_libc,mvc_datdeb,mvc_datrep,np_nom,np_prenom from ar_mouvcong ,ar_typcong ,nperson where (mvc_code='" +
n + "'and tc_code=mvc_type and np_idagent=MVC_idagent)";
ResultSet resultat = state.executeQuery(q2);
System.out.println("hgsdfhg");
while (resultat.next()) {
num = resultat.getString(1);
System.out.println(num);
adress = resultat.getString(2);
System.out.println(adress);
numtel = resultat.getLong(3);
codetype = resultat.getString(4);
datdeb = resultat.getString(5);
datdeb = datdeb.substring(0, datdeb.indexOf("00:"));
datr = resultat.getString(6);
if (datr.indexOf("00:") != -1) {
datr = datr.substring(0, datr.indexOf("00:"));
}
tnom = resultat.getString(7);
tprenom = resultat.getString(8);
System.out.println("nom:" + tnom + " prenom: " + tprenom);//ici le nom
//s'affiche correctement
//il n'ya pas des erreurs de requette les parametres sont recupérés correctement
}
if (num != null) {//condition de recherche
//tt ces champs sont de JTextField
numero.setText(num);
adresse.setText(adress);
tel.setText(String.valueOf(numtel));
dat.setText(datdeb);
datrep.setText(datr);
//grade.setText(codeGrade);
type.setSelectedItem(codetype);
prenom.setText(tprenom);//génère une exception de type class cast exception
nom.setText(tnom);//génère une exception de type class cast exception
} else {
JOptionPane.showMessageDialog(this, "numero n'existe pas",
"ERREUR",
JOptionPane.ERROR_MESSAGE);
}
} catch (SQLException e) {
System.out.println("erreur de requette");
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 20 juil. 2007 à 11:28
Tu as en effet un Long pour numtel il est donc possible que qu il te fasse un class cast execp
probleme de cast donc ;o)
ceci dit "caster" un Long en String n est pas non plus la bonne soluce ;o) il te faut faire setText(numTel.toString() )
et si c est une variable de type long et non Long il te faut faire setText( ""+ numTel ) ou setText(new Long( numTel).toString() ) voila ;o) verifie que toute tes setText sont bien des String ;o)
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 20 juil. 2007 à 11:32
En fait c est vrai que les déclaration aurai eté simpa qd meme ;o) bien que les methode du resultSet nous permetes de déduire les types ;o) nettement plus penible à chercher... ;o)
cs_ahmedoo
Messages postés17Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention29 juillet 2010 21 juil. 2007 à 09:42
merci a vous d'accepter de m'aider . j'ai essayé tt mais ca n'a pas marché et je croit que ce n'est pas numtel qui génére l'exception mais plutot nom et prenom car
quand je mets nom et prenom en commentaire il n'y aura plus d'exception
et concernant les déclaration voici le code complet de la classe modifier et si ca vous interesse je peut vous envoyé le code complet du projet et merci une autre fois pour votre aide.
package projet_2_2;
public class modifier extends JPanel implements ActionListener {
int etat = 0;
Connection connect;
Statement state;
JLabel jLabel2 = new JLabel();
JTextField numConge = new JTextField();
JButton rechercher = new JButton();
JLabel jLabel3 = new JLabel();
JTextField nom = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField prenom = new JTextField();
JLabel jLabel5 = new JLabel();
JTextField grade = new JTextField();
JTextField tel = new JTextField();
JLabel jLabel6 = new JLabel();
JLabel jLabel7 = new JLabel();
JComboBox type = new JComboBox();
JLabel jLabel8 = new JLabel();
JTextField duree = new JTextField();
JLabel jLabel9 = new JLabel();
JTextField adresse = new JTextField();
JButton modifier = new JButton();
JButton supprimer = new JButton();
JLabel jLabel10 = new JLabel();
JTextField numero = new JTextField();
JLabel jLabel1 = new JLabel();
JTextField dat = new JTextField();
calendrier ca = new calendrier();
calendrier ca2 = new calendrier();
javax.swing.JLabel jLabel11 = new JLabel();
javax.swing.JTextField datrep = new JTextField();
public modifier() {
try {
public void Connecter(Connection c) {
connect = c;
}
public static void main(String[] args) {
modifier m = new modifier();
JFrame f = new JFrame("gestion des congées");
f.getContentPane().add(m);
f.setVisible(true);
f.setSize(485, 300);
public void actionPerformed(ActionEvent a) {
Object o = a.getSource();
String codetype = ""; String adress "", Type "", datdeb = "", datr = "", codeGrade = "";
String num = null; String tnom "", tprenom "";
long numtel = 0;
try {
state = connect.createStatement();
} catch (SQLException ex) {
}
if (o == rechercher) {
String n = numConge.getText().toString();
try {
System.out.println(n);
String q2 = "select mvc_idagent,mvc_adres,mvc_ntel,tc_libc,mvc_datdeb,mvc_datrep,np_nom,np_prenom from ar_mouvcong ,ar_typcong ,nperson where (mvc_code='" +
n + "'and tc_code=mvc_type and np_idagent=MVC_idagent)";
}
} catch (SQLException e) {
System.out.println("erreur de requette");
}
}
if (o == modifier) {
String DATE = dat.getText();
int j = 0;
int jj = 0;
int mm = 0;
int aa = 0;
j = DATE.indexOf("/", 0);
jj = Integer.parseInt(DATE.substring(0, j));
mm = Integer.parseInt(DATE.substring(j + 1, DATE.indexOf("/", j + 1)));
j = DATE.indexOf("/", j + 1);
aa = Integer.parseInt(DATE.substring(j + 1));
Date d = new Date(aa, mm, jj);
System.out.println(jj + "/" + mm + "/" + aa + "///");
System.out.println("date2=" + d.getDate() + "/" + d.getMonth() +
"/" +
d.getYear());
numtel = Long.parseLong(tel.getText().toString());
double dur = Double.parseDouble(duree.getText().toString());
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 21 juil. 2007 à 10:57
de toute facon comme on a pas la base ;o) ..... ;o) on peu pas le tester ;o)
pour affiner ton probleme met des tracers ds ton code (sysout) ou utilise le debugger ;o) et les point d arret
cs_ahmedoo
Messages postés17Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention29 juillet 2010 21 juil. 2007 à 13:05
oui tu as raison tu peut pas tester l'interface sans la base, mais je pense que le pb c'est la gestion des caracteres arabes par JTextField car nom et prenom sont des caracteres arabes,en fait quand je mets des caracteres alphabétiques il n'y a pas d'exception.
Est ce que tu as une idée sur la gestion des caractères arabes sous java?et merci une autre fois.
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 21 juil. 2007 à 13:21
regarde si tu peux trouver ton bonheur avec la methode static format(...) de la class String normalement elle prend en compte les languages mais je n ai jamais etait confronter au probleme...
le soucis vien surtout du contenu de ta base ... si tu ne connais pas le codage des caractere arabe utilisé !!! tu auras du mal à les convertir .... ;o)