Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    81

    Problema associazione Action ad una JList di JButton

    Ciao a tutti, il mio problema è il seguente: ho creato uno scrollPane contenente una JList alla quale aggiungo dei JButton, la lista riproduce il contenuto della directory sotto forma di icone(immagini). Ho creato un'azione che implementa AbstractAction e l'ho assegnata ad ogni JButton in modo tale che quando l'utente schiaccia sull'icona si aggiorni automaticamente lo scrollPane contente il file immagine, ma non funziona. Settando l'azione su un bottone al di fuori della lista invece riesco ad aggiornare l'immagine. Avete qualche idea su come risolvere il problema..graziee..ciaoooo

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Problema associazione Action ad una JList di JButton

    Originariamente inviato da tina8
    Avete qualche idea su come risolvere il problema..graziee..ciaoooo
    Senza codice è un po' difficile aiutarti, non siamo indovini
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    81
    Nella classe che gestisce l'apertura della directory richiamo un metodo che aggiorna la lista di JButton ossia:

    codice:
    public void inizializzaListaFileImmagini(){
      Sessione sessione = (Sessione) this.controllo.getModello().getBean(Costanti.SESSIONE);   
      ArrayList<Immagine> listaImmagini = sessione.getListaImmagini();
      Vector<JButton> vector = new Vector<JButton>();
      for(int j=0;j<listaImmagini.size();j++){
            Immagine immagine1 = (Immagine)listaImmagini.get(j);
            ImageIcon icona2 = new ImageIcon(immagine1.prelevaFileImmagine());
            Image image= icona2.getImage();
            if (icona2.getIconWidth() > 200) {
                                        
                 image = image.getScaledInstance(120,(icona2.getIconHeight() *120)/icona2.getIconWidth(), 1);
       					icona2.setImage(image);
       				}
    	       
       				if (icona2.getIconHeight() > 200) {
       				image = image.getScaledInstance((icona2.getIconWidth() * 120)/icona2.getIconHeight(),120, 1);
       					
                                        icona2 = new ImageIcon(image);
       				}
            JButton button = new JButton();
            button.setAction(this.controllo.getAzione(Costanti.AZIONE_CAMBIA_IMMAGINE));
            button.setIcon(icona2);
            button.setText("");
             vector.add(button);
    } 
    this.listaImmagini.repaint();
    this.listaImmagini.setListData(vector);
    this.listaImmagini.setCellRenderer(new ButtonCellRenderer(controllo));
    this.scrollPaneRiepilogoImmagini.setViewportView(this.listaImmagini);
    this.scrollPaneRiepilogoImmagini.repaint();
      }
    L'azione che richiamo attraverso Costanti.AZIONE_CAMBIA_IMMAGINE è la seguente:

    codice:
    public class AzioneCambiaImmagine extends AbstractAction{
        
        private Controllo controllo;
        
        public AzioneCambiaImmagine(Controllo controllo){
            this.controllo=controllo;
            this.putValue(NAME, "Cambia immagine");
            this.putValue(SMALL_ICON, new ImageIcon("C:/oggettidue/browserImmagini/icone/Picture-32x32.png"));
            this.putValue(SHORT_DESCRIPTION, "Cambia immagine");
            this.putValue(MNEMONIC_KEY, KeyEvent.VK_C);
            this.putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke("ctrl C"));
        }
    
        public void actionPerformed(ActionEvent e) {
            Vista vista = this.controllo.getVista();
            SchermoPrincipale schermoPrincipale = (SchermoPrincipale) vista.getSottoVista(Costanti.VISTA_SCHERMO_PRINCIPALE);
           int immagineSelezionata = schermoPrincipale.getSelectedIndex();
            if(immagineSelezionata==-1){
            vista.finestraErrore("Selezionare un immagine");
           }else{
                vista.finestraInformazione("Selezione effettuata");
                Sessione sessione = (Sessione) this.controllo.getModello().getBean(Costanti.SESSIONE);
                Immagine immagine =  sessione.getImmagineSelezionata(immagineSelezionata);
                schermoPrincipale.inizializzaImmagine(immagine.getPercorso());
                      
           }
        }
        }
    Naturalmente nella sessione salvo tutte le immagini delle directory.

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.