Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    11

    settare immagine ad una jlabel

    Salve a tutti
    Il mio problema è che non riesco a settare un immagine ad una jlabel.
    Tramite l'evento MouseClicked apro una Dialog che usa jfilechooser.
    Ho provato così:

    codice:
    private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {                                     
    
    
            JFileChooser chooser = new JFileChooser();
            
            FileNameExtensionFilter filter = new FileNameExtensionFilter("Immagini", "jpg", "gif", "bmp", "png");
    
    
            chooser.setFileFilter(filter);
    
    
            Component parent = null;
            
            chooser.showOpenDialog(parent);
    
    
    
            jLabel1.setIcon(chooser.getIcon(chooser.getSelectedFile()));
    
    
    
        }

    Soltanto che mi setta l'icona non l'immagine.
    Mi potreste aiutare?
    Grazie in anticipo
    Ultima modifica di LeleFT; 10-03-2014 a 13:10 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kalif Visualizza il messaggio
    jLabel1.setIcon(chooser.getIcon(chooser.getSelectedFile()));
    Questo getIcon non è quello che ti serve. Non serve per caricare una immagine arbitraria scelta dall'utente con JFileChooser. Serve per ottenere la icona che rappresenta un tipo di file (es. per i .txt la classica icona del foglio-documento).

    JFileChooser ti fornisce un pathname, se è una immagine la puoi caricare con la API di ImageIO, oppure con uno dei costruttori di ImageIcon oppure direttamente con la API del Toolkit di AWT. Con il solo Java SE altre strade non ce ne sono.

    P.S. E ognuna di queste API che ho citato ha caratteristiche differenti e le sue potenzialità e i suoi limiti.
    Quindi devi approfondire ...
    Ultima modifica di andbin; 08-03-2014 a 15:01
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    11
    Grazie andbin ma non ho capito, scusa la mia ignoranza

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kalif Visualizza il messaggio
    Grazie andbin ma non ho capito, scusa la mia ignoranza
    javax.imageio.ImageIO
    oppure
    javax.swing.ImageIcon
    oppure
    java.awt.Toolkit

    Queste sono le 3 API di Java SE per caricare "immagini". E ognuna ha le sue caratteristiche. Cerca sul forum, ne abbiamo già parlato sicuramente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    11
    Grazie andbin.
    Ho controllato le 3 API e ho controllato anche varie discussioni su questo argomento.
    L'unico problema che mi rimane è il settare l'immagine poiché non riesco a trovare un setImage.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da kalif Visualizza il messaggio
    L'unico problema che mi rimane è il settare l'immagine poiché non riesco a trovare un setImage.
    JLabel tratta solo Icon (get/setIcon). ImageIcon è-un Icon, quindi già appropriato. Se carichi la immagine con il Toolkit o con ImageIO ottieni rispettivamente un Image o un BufferedImage. In entrambi i casi puoi incapsularli in ImageIcon (c'è il costruttore apposito).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    11
    Non è che mi scriveresti in codice perché ho provato ma non mi viene.
    Io faccio così:

    codice:
            JFileChooser chooser = new JFileChooser();
            
            chooser.showOpenDialog(this);
            
            Toolkit t = new HToolkit();
            
            Object f = chooser.getSelectedFile();
            
            Image g = t.getImage((String) f);
            
            ImageIcon ii = new ImageIcon(g);
            
            jLabel1.setIcon(ii);
    Ultima modifica di LeleFT; 10-03-2014 a 13:12 Motivo: Aggiunti i tag CODE

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    codice:
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(this);
    
    // Perchè crei un oggetto ToolKit?? Ce n'è già uno fornito di default... ti basta quello
    Toolkit t = new HToolkit();
    
    // Perchè "Object"? getSelectedFile() restituisce un oggetto "File"
    Object f = chooser.getSelectedFile();
    
    // Perchè un cast a String... f è un oggetto "File", non un oggetto "String"
    Image g = t.getImage((String) f);

    Molto, molto, molto banalmente (e di esempi così ne trovi a centinaia con Google):

    codice:
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(this);
    
    // Ottengo il File selezionato
    File f = chooser.getSelectedFile();
    
    // Ottengo il percorso del file come stringa
    String imgPath = f.getAbsolutePath();
    
    // Creo l'ImageIcon
    ImageIcon icon = new ImageIcon( imgPath );
    
    // Setto l'icona alla JLabel
    jLabel1.setIcon( icon );

    Ciao.
    Ultima modifica di LeleFT; 10-03-2014 a 13:20
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    11
    Grazie Leleft, mi sei stato molto utile.
    Comunque grazie anche a andbin, non sono riuscito ad applicare i tuoi consigli, ma grazie lo stesso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.