Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Appndere una icon al testo al click su un jButton
Forum - Java - Appndere una icon al testo al click su un jButton

Avatar
Java5 (Ex-Member)
Rookie


Messaggi: 23
Iscritto: 19/10/2009

Segnala al moderatore
Postato alle 20:05
Giovedì, 04/11/2010
Ciao a tutti
ho il seguente problema:
con questo codice che posto di seguito praticametnte ottengo una serie di jButton con al loro interno una icona (tutte le icone sono presenti nella dirSorgente che passo al metodo caricaEmoticons).
Io vorrei che alla pressione di un qualsiasibottone, l'immagine in esso contenuta venisse appesa al testo all'interno di un jTextPane.

Per fare questo dovrei innanzitutto catturare il click sul pulsante (i) e nn so come si fa e poi capire qual è l'icona associata al pulsante cliccato.
A tale scopo ho creato un listener per la gestione dell'evento click ma non riesco a farlo funzionare.
Sapete darmi qualche consiglio?

Codice sorgente - presumibilmente Java

  1. public void caricaEmoticons(String dirSorgente) {
  2.                 File files= new File(dirSorgente);
  3.                 int righe=0;
  4.                 int colonne = 0;
  5.                 ActionListener listener = new ClickIcon();
  6.                 String [] listaFile = files.list();
  7.                 for (intCountIcon=0; intCountIcon<listaFile.length-1; intCountIcon++) {
  8.                         jBtoIcon= new JButton[(listaFile.length)];
  9.                         jBtoIcon[intCountIcon]=(new JButton(new ImageIcon(dirSorgente + "/"+listaFile[intCountIcon])));
  10.                         jBtoIcon[intCountIcon].setBackground(Color.red);
  11.                         jCP_Emoticons.add(jBtoIcon[intCountIcon]);
  12.                         jBtoIcon[intCountIcon].addActionListener(listener);
  13.                 }
  14.                 if((intCountIcon>0) && (intCountIcon<=10)) {
  15.                         righe=intCountIcon/3;
  16.                         colonne=2;
  17.                 }else if ((intCountIcon>10) && (listaFile.length<=30)) {
  18.                         righe=intCountIcon/6;
  19.                         colonne=2;
  20.                 }
  21.                 jCP_Emoticons.setLayout(new GridLayout(righe,colonne));
  22.                 jSP_Emoticons.setViewportView(jCP_Emoticons);
  23.         }
  24.  
  25. class ClickIcon implements ActionListener{
  26.                 @Override
  27.                 public void actionPerformed(ActionEvent e) {
  28.                         //jTxtF_Msg.setText(jTxtF_Msg.getText() + " " +  jBtoIcon[intCountIcon]);
  29.                         //jTP_Chat1.setText(jTxtF_Msg.getText() + " " + );
  30.                         jBtoIcon[intCountIcon].getPressedIcon();
  31.                 }
  32.          }




PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 13:45
Venerdì, 05/11/2010
Per il primo problema: dovresti fare un cast JButton su e.getSource() così da poter sapere quale pulsante è stato schiacciato. Fai così:
Codice sorgente - presumibilmente Java

  1. class ClickIcon implements ActionListener{
  2.                 @Override
  3.                 public void actionPerformed(ActionEvent e) {
  4.                         JButton pulsanteScelto=(JButton)e.getSource();
  5.                         //pulsanteScelto sarà quel pulsante su cui hai sciacciato
  6.                 }
  7.          }


Per il secondo: io ti consiglierei di creare 2 array: uno di JButton per i tuoi pulsanti, e l'altro di ImageIcon per le immagini.
Una volta riempiti secondo il tuo ordine, facendo un ciclo for che va da 0 fino alla lunghezza dell'array di jbutton, in cui si fa una ricerca di tutto l'array e una volta trovata una correlazione tra pulsanteScelto e l'array esca dal ciclo. Fatto ciò, saprai per mezzo di pos, quale immagine andare a caricare.
Spero di essere stato chiaro. Chiedi pure se riscontri problemi o non hai capito qualcosa!! ;)

Ultima modifica effettuata da bububs il 05/11/2010 alle 13:54
PM Quote
Avatar
Java5 (Ex-Member)
Rookie


Messaggi: 23
Iscritto: 19/10/2009

Segnala al moderatore
Postato alle 15:52
Venerdì, 05/11/2010
Grazie tantissimo bububs
proverò sicuramente i tuoi suggerimenti e spero di riuscire.
Grazie

PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 13:52
Sabato, 06/11/2010
Di niente! :k:

PM Quote