Pour débutants...

Signaler
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006
-
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
-
Bonjour, je n'ai pas trouvé de coins novices alors je pose ma question ici.

je voudrais créer un évenement sur un bouton Quitter qui arrêterait l'application.

Donc ca me donnerait?



else if (e.getSource() == bQuitter) {



}





Merci d'avance...

15 réponses

Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20
Salut
avant tout, il faut vérifier que ton bouton a un ActionListener (qui s'insére de la maniére suivante : monbouton.addActionListener(..)).

Ensuite, il faut que l'interface ActionListener soit soit implemente dans le composant principale (soit par exemple ta frame, et ton code ci-dessus serait-exact) soit directement dans le bouton :

ex:
monBouton.addActionListener(new ActionListener(){
public void actionperformed(ActionEvent e){
System.out.println("Kikou");
}
});

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
Pour quitter une application, tu fais:

System.exit(0);

"A game is a series of interesting choices." Sid Meier
Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10
Sauf qu'avec cette méthode tu quittes l'applaictions un peu trop rapidement, surtout pour une application fenêtrée ... ;-)

++
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006

Ok merci pour l'aide... A présent je
voudrais tout simplement faire apparaitre une autre feuille à partir
d'un bouton et cacher la feuille active ou même la fermer. Ensuite je
voudrais redimensionner cette même fenêtre active si je clique sur le
bouton n°2. Comment m'y prendre?

Merci...





if (e.getSource() == bouton){

//lancer feuille 2;

}

else if(e.getSource()==bouton1){

//redimensionner la frame;

}
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
Tu peux utiliser un CardLayout qui permet d'afficher un panel puis un autre en utilisant les fonction next() et previous().

Pour redimensionner, tu peux utiliser setSize();

"A game is a series of interesting choices." Sid Meier
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006

Pourrais tu me donner un exemple de ce CardLayout et des fonctions next() et previous()?
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
http://www.infres.enst.fr/~charon/coursJava/interSwing/cartes.html

"A game is a series of interesting choices." Sid Meier
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006

salut,

j'aimerais à présent créer par exemple quelques JTextFields au centre d'un frame avec un menu. Pour cela, je voudrais savoir s'il est possible d'ajouter ces JTextFields dans un panel en GridLayout(9,9 //par exemple), et placer ce même panel dans un BorderLayout("Center")...
Est-ce possible?
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
Lorque tu places un composant au centre d'un BorderLayout, le composant prend toute la place disponible s'il n'y a pas d'autre panel ajouté sur les cotés.

"A game is a series of interesting choices." Sid Meier
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006

Salut,
j'ai une fenêtre avec 81 JTextFields disposé en grille(9,9) -un sudoku- et j'aimerais comparer les valeurs entrées dans les JTextFields à ma grille solution, alias dupliGrille[][] (qui est un tableau de int[][]) grâce à un compteur. Si tout est correct, alors le compteur est égal à 81, sinon le nombre d'erreurs est égal a 81-cpt. Cependant, quand je lance un sudoku initial avec 36 cases dévoilées par exemple, il devrait me mettre 55 erreurs, logiquement. Pourtant il me met systématiquement 81 erreurs. Je pense que mon erreur doit se trouver dans " tJTf[x][y].getText() == Integer

.toString(dupliGrille[x][y]) "
Pourriez-vous m'aider?

int cpt = 0;
for (int x = 0; x < 9; x++) {
for (int y = 0; y < 9; y++) {
tJTf[x][y].setEnabled(false);
if (tJTf[x][y].getText() == Integer
.toString(dupliGrille[x][y])) {
cpt++;
}
}
}
if (cpt == 81) {
System.out.println("Ok");
} else {
int nbErr = 81 - cpt;
System.out.println("Il existe " + nbErr + " fautes");
}
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
As-tu essayer if (tJTf[x][y].getText().equals(Integer.toString(dupliGrille[x][y]))) {

De même, as tu fait un system.out des valeurs comparées?

"A game is a series of interesting choices." Sid Meier
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006

Merci beaucoup ducheseb, c'était bien un .equals qu'il fallait mettre...

Du coup ca m'a fait avancer jusqu'à une nouvelle impasse: la gestion d'évenements lors de la saisie d'un chiffre dans une case.

Effectivement lorsque je valide un sudoku initialisé, il me met dans un
System.out.print qu'il y a 46 fautes, du fait que rien n'ait été ajouté.

Cependant lorsque je rajoute un chiffre avec lequel je suis certain
qu'il soit juste, il me met toujours 46 fautes, ce qui signifique qu'il
ne prend pas en compte la mise à jour des JTextFields. Ce qui m'amène
au problème suivant:



Comment mettre en condition ces JTextFields pour dire qu'il ne doit accepter que des Ints entre 1 et 9?



Je pense qu'à partir de là la vérification de la grille prendra en compte la saisie de l'utilisateur.
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
String tmp = jtf.getText();
try{
int i = Integer.parseInt(tmp);
if (i<1 || i>9){
jtf.setText("");
}
}catch(NumberFormatException nfe){
jtf.setText("");
}

Il faudra que tu mettes un KeyListener sur tes JTextField

"A game is a series of interesting choices." Sid Meier
Messages postés
49
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
13 août 2006

Ok j'ai bien saisi le bout de code c'est bien ça qu'il me faut. Mais quand je fais:

public class PageGrille extends JFrame implements ActionListener

comment faire pour rajouter le KeyListener sans qu'il me mette une erreur?
Messages postés
344
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
23 juin 2006
6
Tu peux donner ton code?

"A game is a series of interesting choices." Sid Meier