Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    Cambiare ImageIcon di JButton

    Ciao a tutti,
    ho 2 JButton per entrambi ho impostato una 2 icon differenti: icon1 e icon2.
    Allo stesso modo per entrambi ho impostato una rolloverIcon: icon1A e icon2A.
    In questo modo se passo con il mouse l'immagine cambia da icon1 a icon1A e per l'altro da icon2 a icon2A.
    A questo punto vorrei anche che cliccando su uno dei due possa avvenire lo stesso cambiamento che avviene con il passaggio del mouse.
    Come posso fare ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    A questo punto vorrei anche che cliccando su uno dei due possa avvenire lo stesso cambiamento che avviene con il passaggio del mouse.
    Come posso fare ?
    Per AbstractButton e sottoclassi, ci sono:

    setDisabledIcon(Icon disabledIcon)
    setDisabledSelectedIcon(Icon disabledSelectedIcon)
    setIcon(Icon defaultIcon)
    setPressedIcon(Icon pressedIcon)
    setRolloverIcon(Icon rolloverIcon)
    setRolloverSelectedIcon(Icon rolloverSelectedIcon)
    setSelectedIcon(Icon selectedIcon)

    Scegli quindi tu quali impostare. Se alcuni non vengono impostati, ci sono comunque delle logiche di default, del tipo: se non si imposta il disabledIcon, Swing prende il defaultIcon e lo fa passare attraverso un GrayFilter e usa il risultato per il disabledIcon.
    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
    Jul 2014
    Messaggi
    480
    Si infatti ho fatto così:
    codice:
    private void europaMousePressed(java.awt.event.MouseEvent evt) {                                    
            Icon pressedIconEuropa = new ImageIcon("src//immagini//europe.png");
            europa.setDisabledIcon(pressedIconEuropa);
            europa.setIcon(pressedIconEuropa);
            europa.setRolloverEnabled(false);
            africa.setEnabled(true);
            africa.setRolloverEnabled(true);
        }                                   
    
        private void africaMousePressed(java.awt.event.MouseEvent evt) {                                    
            Icon pressedIconAfricaAsia = new ImageIcon("src//immagini//africa-asia.png");
            africa.setDisabledIcon(pressedIconAfricaAsia);
            africa.setIcon(pressedIconAfricaAsia);
            africa.setRolloverEnabled(false);
            europa.setEnabled(true);
            europa.setRolloverEnabled(true);
        }
    per ogni bottone faccio il rollover su 2 immagini .png.
    solo che cliccando sul primo e poi sul secondo, sul primo non mi funziona più il rolloover delle immagini che ho impostato ma resta l'immagine che ho messo in pressedIconEuropa.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ho fatto così:
    codice:
     private void europaMousePressed(java.awt.event.MouseEvent evt) {                                    
            Icon pressedIconEuropa = new ImageIcon("src//immagini//europe.png");
            europa.setDisabledIcon(pressedIconEuropa);
            europa.setIcon(pressedIconEuropa);
            Icon pressedIconAfricaAsia = new ImageIcon("src//immagini//africa-asia_light.png");
            africa.setIcon(pressedIconAfricaAsia);
            africa.setEnabled(true);
            africa.setRolloverEnabled(true);
        }                                   
    
        private void africaMousePressed(java.awt.event.MouseEvent evt) {                                    
            Icon pressedIconAfricaAsia = new ImageIcon("src//immagini//africa-asia.png");
            africa.setDisabledIcon(pressedIconAfricaAsia);
            africa.setIcon(pressedIconAfricaAsia);
            Icon pressedIconEuropa = new ImageIcon("src//immagini//europe_light.png");
            europa.setIcon(pressedIconEuropa);
            europa.setEnabled(true);
            europa.setRolloverEnabled(true);
        }
    anche se avrei preferito che cliccando su uno dei due JButton, l'altro diventasse "non cliccabile"

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.