Oppure

Loading
04/11/10 19:05
Java5
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?


public void caricaEmoticons(String dirSorgente) {
		File files= new File(dirSorgente);
		int righe=0;
		int colonne = 0;
		ActionListener listener = new ClickIcon();
		String [] listaFile = files.list();
		for (intCountIcon=0; intCountIcon<listaFile.length-1; intCountIcon++) {
			jBtoIcon= new JButton[(listaFile.length)];
			jBtoIcon[intCountIcon]=(new JButton(new ImageIcon(dirSorgente + "/"+listaFile[intCountIcon])));
			jBtoIcon[intCountIcon].setBackground(Color.red);
			jCP_Emoticons.add(jBtoIcon[intCountIcon]);
			jBtoIcon[intCountIcon].addActionListener(listener);
		}
		if((intCountIcon>0) && (intCountIcon<=10)) {
			righe=intCountIcon/3;
			colonne=2;
		}else if ((intCountIcon>10) && (listaFile.length<=30)) {
			righe=intCountIcon/6;
			colonne=2;
		}
		jCP_Emoticons.setLayout(new GridLayout(righe,colonne));
		jSP_Emoticons.setViewportView(jCP_Emoticons);
	}

class ClickIcon implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			//jTxtF_Msg.setText(jTxtF_Msg.getText() + " " +  jBtoIcon[intCountIcon]);
			//jTP_Chat1.setText(jTxtF_Msg.getText() + " " + );
			jBtoIcon[intCountIcon].getPressedIcon();
		}
	 }



aaa
05/11/10 12:45
bububs
Per il primo problema: dovresti fare un cast JButton su e.getSource() così da poter sapere quale pulsante è stato schiacciato. Fai così:
class ClickIcon implements ActionListener{
                @Override
                public void actionPerformed(ActionEvent e) {
                        JButton pulsanteScelto=(JButton)e.getSource();
                        //pulsanteScelto sarà quel pulsante su cui hai sciacciato
                }
         }

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 05/11/10 12:54
aaa
05/11/10 14:52
Java5
Grazie tantissimo bububs
proverò sicuramente i tuoi suggerimenti e spero di riuscire.
Grazie
aaa
06/11/10 12:52
bububs
Di niente! :k:
aaa