Bouton marche pas clique java
Résolu
keurdange
Messages postés
720
Date d'inscription
Statut
Membre
Dernière intervention
-
keurdange Messages postés 720 Date d'inscription Statut Membre Dernière intervention -
keurdange Messages postés 720 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je voudrais dessiner une image quand on clique sur le bouton chp mais le probleme c'est que ca ne réagit pas. voici mon code:
chp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
int ha=rd.nextInt(listep.capacity());
class parrain extends JPanel
{
public void paintComponent(Graphics g)
{
File fichier=new File("C:/Users/Sylvestre/Pictures/Feu_1_.jpg");
try {
final Image moi1 = ImageIO.read(fichier);
g.drawImage(moi1, 0, 0, this.getWidth(), this.getHeight(), this);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
});
merci d'avance pour votre aide.
je voudrais dessiner une image quand on clique sur le bouton chp mais le probleme c'est que ca ne réagit pas. voici mon code:
chp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
int ha=rd.nextInt(listep.capacity());
class parrain extends JPanel
{
public void paintComponent(Graphics g)
{
File fichier=new File("C:/Users/Sylvestre/Pictures/Feu_1_.jpg");
try {
final Image moi1 = ImageIO.read(fichier);
g.drawImage(moi1, 0, 0, this.getWidth(), this.getHeight(), this);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
});
merci d'avance pour votre aide.
A voir également:
- Bouton marche pas clique java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
La seule véritable "erreur" que je vois c'est ton listep.capacity(), tu as certainement confondu avec listep.size(). Après avec un code partiel, il est impossible de tester et de voir s'il y a d'autres erreurs.
Remarque : à chaque fois que tu vas cliquer sur le bouton tu vas relire ton fichier. Il serait peut-être préférable de lire l'image une seule fois, soit au début de l'application, soit lors de la première utilisation de l'image. Ça évite d'avoir à lire plusieurs fois le fichier.
Ensuite, est-ce que tu crées vraiment une quadruple imbrication (paintComponent, dans la classe parrain, dans actionPerformed, dans l'implémentation de l'ActionListener de ta méthode addActionListener). D'accord c'est syntaxiquement correct, mais il y a surement moyen de faire autrement, à la compilation ça va donner un truc du genre toto$0$parrain.class ? C'est pas top je trouve...
Remarque : à chaque fois que tu vas cliquer sur le bouton tu vas relire ton fichier. Il serait peut-être préférable de lire l'image une seule fois, soit au début de l'application, soit lors de la première utilisation de l'image. Ça évite d'avoir à lire plusieurs fois le fichier.
Ensuite, est-ce que tu crées vraiment une quadruple imbrication (paintComponent, dans la classe parrain, dans actionPerformed, dans l'implémentation de l'ActionListener de ta méthode addActionListener). D'accord c'est syntaxiquement correct, mais il y a surement moyen de faire autrement, à la compilation ça va donner un truc du genre toto$0$parrain.class ? C'est pas top je trouve...
chp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
parrain pa=new parrain();
Graphics g;
pa.paintComponent(g, "C:/Users/Keurdange/Pictures/ucad.jpg");
}
});
public class parrain extends JPanel
{
public void paintComponent(Graphics g, String s)
{
File fichier= new File(s);
try {
final Image moi1 = ImageIO.read(fichier);
g.drawImage(moi1, 0, 0, this.getWidth(), this.getHeight(), this);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
mais le probleme, c'est que je dois initialiser la valeur de g dans mon ActionListener et je ne peux l'initialiser à null sinon je risque de générer une exception du genre NullPointerException. J'ai lu sur le net qu'on pouvait le faire avec this.getGraphics mais hélas non, ca marche pas avec moi.
J'ai pas testé, il y a peut-être des erreurs :