Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    [JAVA] Sfondo JButton con immagine in formato png

    Salve, ho cercato ma non ho trovato nulla sul mio problema.
    Praticamente ho un JButton con uno sfondo (impostato con setIcon ecc...) che consiste in un immagine in formato png con delle trasparenze. Le trasparenze si vedono, ma il programma non mostra fedelmente l'immagine... l'immagine che uso è in grigio scuro, ma in Java si vede grigio chiaro...
    Perché?
    Per completezza, posto il codice che riguarda quel button (che è contenuto in un JPanel, a sua volta in un JFrame):

    codice:
    d.setLocation((int)(larghezza-larghD)/2,200);
    d.setSize(larghD,altD);
    d.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Immagini/Domanda.png")));
    d.setOpaque(false);  // Trasparenza sfondo
    d.setEnabled(false);  // Disabilita pulsante
    d.setBorder(null);  // Toglie bordo
    s.add(d);
    d è il JButton ed è dichiarato sopra senza parametri, s è il JPanel.
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Sfondo JButton con immagine in formato png

    Originariamente inviato da Kaamos
    d.setOpaque(false); // Trasparenza sfondo
    setOpaque non ti servirebbe .... non ha a che fare con l'Icon rispetto al pulsante (ma con il pulsante rispetto a quello su cui sta "sopra").

    Originariamente inviato da Kaamos
    d.setEnabled(false); // Disabilita pulsante
    La questione è qui. Se è disabilitato, per default prende la icona "normale" e ne genera una immagine "disabilitata" tramite un apposito "filtraggio".

    Usa setDisabledIcon().
    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
    Dec 2009
    Messaggi
    613

    Re: Re: [JAVA] Sfondo JButton con immagine in formato png

    Originariamente inviato da andbin
    setOpaque non ti servirebbe .... non ha a che fare con l'Icon rispetto al pulsante (ma con il pulsante rispetto a quello su cui sta "sopra").

    La questione è qui. Se è disabilitato, per default prende la icona "normale" e ne genera una immagine "disabilitata" tramite un apposito "filtraggio".

    Usa setDisabledIcon().
    Allora innanzitutto grazie della risposta. Ho cercato online ma non capisco come usare quel metodo. Ora ho questo codice:

    codice:
    d.setLocation((int)(larghezza-larghD)/2,200);
    d.setSize(larghD,altD);
    d.setDisabledIcon(new ImageIcon("/Immagini/Domanda.png"));
    d.setEnabled(false);  // Disabilita pulsante
    d.setBorder(null);  // Toglie bordo
    s.add(d);
    Ma non mi visualizza nessun immagine sullo sfondo.
    Ho provato anche a scrivere semplicemente setDisabledIcon al posto di setIcon lasciando invariato il parametro, ma non funziona ugualmente.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [JAVA] Sfondo JButton con immagine in formato png

    Originariamente inviato da Kaamos
    Ma non mi visualizza nessun immagine sullo sfondo.
    Non sono stato sufficientemente preciso. Devi settare la immagine "disabled" ma anche quella "normale". Se non c'è nemmeno quella normale, non usa quella disabled (per via di tutta una sua logica in AbstractButton).

    Quindi:

    codice:
    ImageIcon tuaIcon = .....
    
    b.setIcon(tuaIcon);
    b.setDisabledIcon(tuaIcon);
    b.setEnabled(false);
    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
    Dec 2009
    Messaggi
    613

    Re: Re: Re: Re: [JAVA] Sfondo JButton con immagine in formato png

    Originariamente inviato da andbin
    Non sono stato sufficientemente preciso. Devi settare la immagine "disabled" ma anche quella "normale". Se non c'è nemmeno quella normale, non usa quella disabled (per via di tutta una sua logica in AbstractButton).

    Quindi:

    codice:
    ImageIcon tuaIcon = .....
    
    b.setIcon(tuaIcon);
    b.setDisabledIcon(tuaIcon);
    b.setEnabled(false);
    Sarò scemo ma non riesco
    Con l'esatto codice che hai postato, mettendo al posto dei puntini
    codice:
    new ImageIcon("Immagini/Domanda.png");
    Non mi visualizza l'immagine, mentre con quest'altro codice:
    codice:
        d.setLocation((int)(larghezza-larghD)/2,200);
        d.setSize(larghD,altD);
        d.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Immagini/Domanda.png")));
        d.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/Immagini/Domanda.png")));
        d.setEnabled(false);  // Disabilita pulsante
        d.setBorder(null);  // Toglie bordo
        s.add(d);
    Mi visualizza l'immagine ma non la trasparenza.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: [JAVA] Sfondo JButton con immagine in formato png

    Originariamente inviato da Kaamos
    codice:
    new ImageIcon("Immagini/Domanda.png");
    Non mi visualizza l'immagine, mentre con quest'altro codice:
    Guarda che una cosa è creare un ImageIcon passandogli un path (che è sul file-system e se è "relativo" centra la directory "corrente") e un'altra cosa è creare un ImageIcon passandogli un URL ottenuto da una "risorsa" (che viene trovata "in classpath") con getResource().

    Originariamente inviato da Kaamos
    Mi visualizza l'immagine ma non la trasparenza.
    Il canale alpha nelle immagini png è supportato da Java. Ma senza vedere realmente quella immagine non saprei dirti di più ....
    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
    Dec 2009
    Messaggi
    613

    Re: Re: Re: Re: Re: Re: [JAVA] Sfondo JButton con immagine in formato png

    Originariamente inviato da andbin
    Guarda che una cosa è creare un ImageIcon passandogli un path (che è sul file-system e se è "relativo" centra la directory "corrente") e un'altra cosa è creare un ImageIcon passandogli un URL ottenuto da una "risorsa" (che viene trovata "in classpath") con getResource().

    Il canale alpha nelle immagini png è supportato da Java. Ma senza vedere realmente quella immagine non saprei dirti di più ....
    Ecco, non sapendo bene che cambiava fra un metodo e l'altro, ho provato con entrambi...
    Cerco di specificare con codice e immagini.

    Con questo codice:
    codice:
        ImageIcon dom=new ImageIcon("Immagini/Domanda.png");
        d.setLocation((int)(larghezza-larghD)/2,200);
        d.setSize(larghD,altD);
        d.setIcon(dom);
        d.setDisabledIcon(dom);
        d.setEnabled(false);  // Disabilita pulsante
        d.setBorder(null);  // Toglie bordo
        s.add(d);
    Ho questo risultato:
    http://www.pctunerup.com/up/results/...75453_imm1.jpg

    Grazie della disponibilità.

    EDIT: con un po' prove ho risolto, grazie mille.

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.