Afficher une image lors d'un clic sur Jbutton

sancha2010 Messages postés 6 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 22 décembre 2011 - 5 avril 2011 à 13:45
 Utilisateur anonyme - 8 avril 2011 à 22:37
j'ai écris un programme qui a pour objectif d'afficher une image lors d'un clic sur une Boutton mais ça marche pas je ne sais pas pour quoi ?vous pouvez m'aider ? ! voici mon code
package image;
import java.awt.*;
import java.awt.Toolkit;
import java.awt.event.*;
import javax.swing.*;
public class image extends JFrame {
       JPanel panel;
       JComboBox Bx_1 ;
       JButton B_1;
       JLabel image1;
       Image img_source;
       private String[] imag1 = {"S.png","u.jpg","p.jpg" } ;
       public image(){
           
        setTitle("Algorithme RSA");
       Toolkit tk = Toolkit.getDefaultToolkit() ;
       Dimension dimEcran = tk.getScreenSize() ;
       int larg = dimEcran.width ;
       int haut = dimEcran.height ;
       System.out.println(larg+","+haut) ;
       setSize (larg, haut) ;
       panel=new JPanel();
       this.add(panel);
       panel.setLayout(null);
        Bx_1 = new JComboBox(imag1) ;
        Bx_1.setBounds(415, 5, 100, 50);
        Bx_1.setFont(new java.awt.Font("Bookman Old Style", 2, 24));
        JLabel image1 = new JLabel( new ImageIcon( "/C:/Users/sanaa/Documents/NetBeansProjects/IMAGE/build/classes/S.png"));
          image1.setBounds(5, 5, 400, 300);
        panel.setLayout(null);
        panel.setBackground(Color.black);
       panel.add(image1);
       B_1=new JButton();
       B_1.setBounds(415, 80, 30, 230);
       B_1.setText("<");
       B_1.setFont(new java.awt.Font("Bookman Old Style", 2, 15));
       B_1.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent evt) {
        JLabel image1 = new JLabel( new ImageIcon( "/C:/Users/sanaa/Documents/NetBeansProjects/IMAGE/build/classes/S.png"));
         image1.setBounds(5, 5, 400, 300);
           image1.setVisible(true);
       }});
        panel.add(B_1);      
       panel.add(Bx_1);
       image1.setVisible(false);
    }}

1 réponse

Utilisateur anonyme
8 avril 2011 à 22:37
Salut,

Sans trop m'arrêter sur les détails, ton code est un peu en désordre. Par exemple tu appelles deux fois "panel.setLayout(null)" dans ton code alors que tu ne devrais le faire qu'une seule fois et je pense avant d'y ajouter quoi que ce soit.

Sinon c'est normal que rien ne se passe au clic de ton bouton.
Dans ta méthode actionPerformed, tu crées une varible itnerner image1. Le soucis c'est que c'est variable (correcte dans son code) est interne à la fonction. Donc elle se trouve détruite lorsque la fonction a fini.

En plus, tu avais déjà tout ce qu'il te fallait avant. Enlève les deux premières lignes de ta méthode actionPerformed et dis nous si ça marche.
0
Rejoignez-nous