Afficher les images d'un repertoire du disque dur dans un JPanel

Fermé
ach32 Messages postés 47 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 19 septembre 2017 - Modifié par ach32 le 11/11/2016 à 08:49
ach32 Messages postés 47 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 19 septembre 2017 - 11 nov. 2016 à 16:48
Bonjour,
Je suis en stage dans une petite entreprise depuis un moment et on m'a demandé de développer une petite application qui devrai afficher les informations d'un employé avec leurs photos.

Pour un début, je veux faire simple; pour celà j'ai renommé chaque image en lui donnant le nom de l'employé correspondant (Exemple: Mateo.png).

j'ai créer un projet graphique sur Netbeans où j'ai un Jpanel, un textField et un boutton OK.
je doit entrer le nom de l'employé dans le textField, puis cliquer sur le boutton pour m'afficher la photo dans le JPanel

Actuellement je bloque sur comment afficher mon image après avoir cliquer sur le boutton OK ?

Merci d'avance pour vos réponses qui me seront d'une très grande utilité.

Voici mon code:



package affichage_photos;

import java.awt.GridLayout;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.Vector;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class Recherche extends javax.swing.JDialog {

    
    public Recherche(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);

        jLabel1.setText("Nom :");

        jButton1.setText("ok");
        jButton1.setName("BtnRecherche"); // NOI18N

        jPanel1.setBackground(new java.awt.Color(204, 255, 204));

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 409, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 266, Short.MAX_VALUE)
        );

        jButton2.setText("Fermer");
        jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton2MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addGap(89, 89, 89)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButton2)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 64, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(21, 21, 21)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addGap(18, 18, 18)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addComponent(jButton2)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
        
        System.exit(0);
    }                                     

   
    public static void main(String args[]) {
       
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                Recherche dialog = new Recherche(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    @Override
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
}




A voir également:

1 réponse

ach32 Messages postés 47 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 19 septembre 2017
11 nov. 2016 à 08:57
Voici une vue de mon interface graphique:

0
ach32 Messages postés 47 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 19 septembre 2017
11 nov. 2016 à 16:48
Je viens d'évoluer avec mon code, pour le moment je parvient à afficher l'image dans le JLabel après avoir écris le nom de l'image dans le JTextfield et en appuyant sur le boutton "OK".

Maintenant je voudrais éliminer le boutton "OK" et afficher l'image l'orsque la saisie correspond déjà à un nom d'image contenu dans le répertoire (Une sorte d'autocomplétion comme dans google)

Aurais-tu une idée? voici mon code:


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        String nomImage = jTextField1.getText() ; 

        jLabel2.setText(nomImage);

        panImage.setImage("src/images/"+nomImage);

        panImage.repaint();

        panImage.revalidate();

    }   
0