OVH Cloud OVH Cloud

Ma langue au chat

3 réponses
Avatar
Michel BERTRAND
Voici une boite de dialogue

j'aimerai que si l'on clique sur OK sans que le nom soit rempli il ne se
passe rien
et la je vois pas ou est l'erreur
Pouvez vous la tester et me dire pourquoi elle se ferme meme lorsque le
champ nom est vide
okstatus passe toujours true
moi je cale

MERCI d'avance


import java.awt.*;
import java.awt.event.*;


public class dialogue extends Dialog implements ActionListener,
WindowListener {

private Button Ok ;
private Button Annuler ;
private TextField Nom, Prenom, Telephone ;
public boolean OkStatus, fin;


public dialogue(Frame frame){

super(frame,"NOUVEAU CONTACT",true);
setFont(new Font("TimesRoman",Font.PLAIN,14));
Panel np = new Panel();
np.setLayout(new GridLayout(3,2)) ;
np.add(new Label("Nom"));
Nom=new TextField("",60);
np.add(Nom);
Nom.setBackground(Color.white);

np.add(new Label("Prenom"));
Prenom=new TextField("",60);
np.add(Prenom);
Prenom.setBackground(Color.white);

np.add(new Label("Telephone"));
Telephone=new TextField(60);
np.add(Telephone);
Telephone.setBackground(Color.white);

add("North",np);

np.setBackground(Color.lightGray);


Panel sp = new Panel();

Ok=new Button("Ok");
sp.add(Ok);
Ok.addActionListener(this);
Annuler=new Button("Annuler") ;
sp.add(Annuler);
Annuler.addActionListener(this);
add("South",sp);

addWindowListener(this);

setSize(300,200);
OkStatus=false;

}



public void actionPerformed(ActionEvent evt) {

OkStatus=false;

if (evt.getActionCommand().equals("Ok")) {
//c'est le premier bouton et c'est la que je pige pas il ne vois jamais
nomgettext vide :-(((

if((Nom.getText())==""){
OkStatus=false;

}
else {
OkStatus=true;

dispose();
}


}

else if (evt.getActionCommand().equals("Annuler")) {
//c'est le deuxième bouton

dispose();
}
}

//window slistener
public void windowActivated(WindowEvent e){}

public void windowDeactivated(WindowEvent e){}

public void windowClosing(WindowEvent e){
OkStatus=false;
dispose();
}

public void windowOpened(WindowEvent e){}

public void windowIconified(WindowEvent e){}

public void windowDeiconified(WindowEvent e){}

public void windowClosed(WindowEvent e){

}

//recup donnees

public String lisNom(){
return Nom.getText();
}
public String lisPrenom(){
return Prenom.getText();
}
public String lisTelephone(){
return Telephone.getText();
}
public boolean lisStatus(){
return OkStatus;
}


}



je l'ouvre avec

Frame f=(Frame)getParent();
dialogue dlg=new dialogue(f);
dlg.show();

3 réponses

Avatar
captainpaf
Le Thu, 6 Nov 2003 23:49:14 +0100, "Michel BERTRAND" a

Voici une boite de dialogue

j'aimerai que si l'on clique sur OK sans que le nom soit rempli il ne se
passe rien
et la je vois pas ou est l'erreur
Pouvez vous la tester et me dire pourquoi elle se ferme meme lorsque le
champ nom est vide
okstatus passe toujours true
moi je cale

MERCI d'avance


import java.awt.*;
import java.awt.event.*;


public class dialogue extends Dialog implements ActionListener,
WindowListener {

private Button Ok ;
private Button Annuler ;
private TextField Nom, Prenom, Telephone ;
public boolean OkStatus, fin;


public dialogue(Frame frame){

super(frame,"NOUVEAU CONTACT",true);
setFont(new Font("TimesRoman",Font.PLAIN,14));
Panel np = new Panel();
np.setLayout(new GridLayout(3,2)) ;
np.add(new Label("Nom"));
Nom=new TextField("",60);
np.add(Nom);
Nom.setBackground(Color.white);

np.add(new Label("Prenom"));
Prenom=new TextField("",60);
np.add(Prenom);
Prenom.setBackground(Color.white);

np.add(new Label("Telephone"));
Telephone=new TextField(60);
np.add(Telephone);
Telephone.setBackground(Color.white);

add("North",np);

np.setBackground(Color.lightGray);


Panel sp = new Panel();

Ok=new Button("Ok");
sp.add(Ok);
Ok.addActionListener(this);
Annuler=new Button("Annuler") ;
sp.add(Annuler);
Annuler.addActionListener(this);
add("South",sp);

addWindowListener(this);

setSize(300,200);
OkStatusúlse;

}



public void actionPerformed(ActionEvent evt) {

OkStatusúlse;

if (evt.getActionCommand().equals("Ok")) {
//c'est le premier bouton et c'est la que je pige pas il ne vois jamais
nomgettext vide :-(((

if((Nom.getText())==""){
OkStatusúlse;

}
else {
OkStatus=true;

dispose();
}


}

else if (evt.getActionCommand().equals("Annuler")) {
//c'est le deuxième bouton

dispose();
}
}

//window slistener
public void windowActivated(WindowEvent e){}

public void windowDeactivated(WindowEvent e){}

public void windowClosing(WindowEvent e){
OkStatusúlse;
dispose();
}

public void windowOpened(WindowEvent e){}

public void windowIconified(WindowEvent e){}

public void windowDeiconified(WindowEvent e){}

public void windowClosed(WindowEvent e){

}

//recup donnees

public String lisNom(){
return Nom.getText();
}
public String lisPrenom(){
return Prenom.getText();
}
public String lisTelephone(){
return Telephone.getText();
}
public boolean lisStatus(){
return OkStatus;
}


}



je l'ouvre avec

Frame f=(Frame)getParent();
dialogue dlg=new dialogue(f);
dlg.show();

Salut,


ton test if((Nom.getText())=="") est toujours faux car tu test
l'égalité de deux références. La première Nom.getText() et la deuxième
"".
Ce que tu dois faire c'est tester le contenu des 2 chaines de
caractères. Pour celà, tu dois employer le méthode equals de la class
String.

if(Nom.getText().equals(""))

Avatar
Michel BERTRAND
MERCI &H3E8 fois

Michel
Avatar
Emmanuel Bourg
Tu veux dire 0x3E8 fois plutot non ? :)

Emmanuel


Michel BERTRAND wrote:

MERCI &H3E8 fois

Michel