Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371

    associare oggetto a JLabel

    se io volessi associare ad un JLabel un oggetto come dovrei fare?

    mi spiego meglio:
    ho una serie di oggetti contenenti un nome e una descrizione, ora vorrei fare in modo che ad ogni oggetto viene associata un'immagine(quindi con una JLabel) per poi poter leggere la descrizione con un semplice click sulla label, il mio problema è come poter fare in modo che cliccando su una JLabel vada a ricercare la descrizione dell'oggetto corretto???


    spero di essermi speigato

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    scusate prima andavo di fretta e ora rileggendo il messaggio mi sono reso conto che non è molto chiaro

    ripeto in modo più chiaro, userò delle classi fittizie(se usassi quelle reali diventerebbe più complicato)
    Ho una classe Libro contenente i 2 attributi titolo, copertina
    Ho istanziato 10 oggetti di questa classe, vorrei ora stampare le 10 copertine utilizzando quindi 10 JLabel, inoltre vorrei fare in modo che cliccando su una copertina mi appaia il titolo, so come gestire l'evento etc, l'unico dubbio è questo:
    come faccio a far in modo che l'EventListener capisca di quale libro visualizzare il titolo? quelle sono delle JLabel contenenti un'immagine, posso in qualche modo associare ad ogni JLabel l'oggetto che rappresenta?


    ora mi sembra più chiaro, almeno spero...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    22
    Ciao,
    Non sembra molto complicato.

    Diciamo che hai:
    codice:
    int numeroLibri = 10;
    Libro[] libri = new Libro[numeroLibri];
    /* popoli l'array istanziando gli oggetti */
    
    JLabel[] lblLibri = new JLabel[numeroLibri];
    for (int i = 0; i<numeroLibri; i++) {
      // assegni alla label l'immagine di copertina
      lblLibri[i] = new JLabel(libri[i].getImage());
      // metti il titolo come tooltip text
      lblLibri[i].setToolTipText(libri[i].getTitle());
    }
    Ho fatto l'esempio più banale che mi è venuto in mente, ma ciò che conta è che hai "associato" ad ogni label un oggetto (in questo caso utilizzando due array paralleli).

    Spero di essere stato d'aiuto

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.