Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    14

    [JAVA] Riconoscere all'interno di una stringa una emoticons e sostituirla

    Ciao ragazzi, sto tentando di sostituire all'interno di una stringa le varie emoticons che un utente puo' digitare.

    Il messaggio arriva e lo passo ad una funzione delegata di fare il controllo e successivamente scrivere il messaggio stesso all'interno di un JTextPane.
    Premetto che sono gia' in grado di inserire singole emoticons e messaggi. Il mio problema e' "solo" quello di riconoscere eventuali emoticons ed inserirle nel messaggio.

    Esempio il messaggio e': ciao :=) come va?Io sono triste :-(.

    Come posso fare per sostituire i caratteri :=) ed :-( in emoticons?
    Che cosa mi consigliate??

    Grazie.
    Nicolò

  2. #2

    Re: [JAVA] Riconoscere all'interno di una stringa una emoticons e sostituirla

    Originariamente inviato da nico92
    Ciao ragazzi, sto tentando di sostituire all'interno di una stringa le varie emoticons che un utente puo' digitare.

    Il messaggio arriva e lo passo ad una funzione delegata di fare il controllo e successivamente scrivere il messaggio stesso all'interno di un JTextPane.
    Premetto che sono gia' in grado di inserire singole emoticons e messaggi. Il mio problema e' "solo" quello di riconoscere eventuali emoticons ed inserirle nel messaggio.

    Esempio il messaggio e': ciao :=) come va?Io sono triste :-(.

    Come posso fare per sostituire i caratteri :=) ed :-( in emoticons?
    Che cosa mi consigliate??

    Grazie.
    Nicolò
    Se sei già in grado di inserire un'emoticon in una data posizione del testo, intesa come numero di caratteri a partire dall'inizio, puoi usare un banel indexOf per individuare una data stringa rappresentativa dell'emoticon da sostituire. indexOf ti restituisce la posizione dell'occorrenza o -1 se non la trova.
    Ti convince?
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    14
    No io so' inserire una emoticon non in una posizione precisa..la so' inserire e basta..il mio problema e' trovarla e sostituirla nel posto giusto

  4. #4
    Originariamente inviato da nico92
    No io so' inserire una emoticon non in una posizione precisa..la so' inserire e basta..il mio problema e' trovarla e sostituirla nel posto giusto
    Il come trovarla all'interno di una stringa te l'ho già suggerito, il come inserire un'emoticon al suo posto dipende dal widget grafico che usi per mostrare questo "testo ricco", (immagini + testo) . Perché non posti un po di codice...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Dato che usi un JtextPane , direi di usare insertIcon dopo aver forzato la posizione del cursore nel punto di sostituzione (individuato con indexOf)
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    14
    Ah ok e c'e' una funzione o qualcosa di simile per forzare la posizione del cursore nel punto di sostituzione ?

  7. #7
    Originariamente inviato da nico92
    Ah ok e c'e' una funzione o qualcosa di simile per forzare la posizione del cursore nel punto di sostituzione ?
    Ho modificato il messaggio sopra per linkarti la documentazione in proposito , in ogni caso qui
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    14
    Scusa ma non ho ben capito il ragionamento..

    codice:
     public void parsingStringa(String message,Document documento,SimpleAttributeSet attributes,SimpleAttributeSet smiles)
           {
             
               if(message.startsWith(":)"))
               {
                   
                   try
                   {
                     ImageIcon icon = new ImageIcon (new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/7/72/Emoticon_smile.svg/32px-Emoticon_smile.svg.png"));
                     StyleConstants.setIcon (smiles, icon);
                     document.insertString (document.getLength (), " ", smiles);
                      document.insertString(document.getLength(), "\n", attributes);
                   }catch(Exception z){System.out.println("NON RIESCO A CARICARE EMOTICON");}
               }
               else if(message.startsWith(":-("))
               {
                   try
                   {
                     ImageIcon icon = new ImageIcon (new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Emoticon_frown.svg/32px-Emoticon_frown.svg.png"));
                     StyleConstants.setIcon (smiles, icon);
                     document.insertString (document.getLength (), " ", smiles);
                      document.insertString(document.getLength(), "\n", attributes);
                   }catch(Exception z){System.out.println("NON RIESCO A CARICARE EMOTICON");}
               }
               else
               {
                   try
                   {
                     //ImageIcon icon = new ImageIcon (new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Emoticon_frown.svg/32px-Emoticon_frown.svg.png"));
                     //StyleConstants.setIcon (smiles, icon);
                     document.insertString (document.getLength (),message, attributes);
                      document.insertString(document.getLength(), "\n", attributes);
                   }catch(Exception z){System.out.println("NON RIESCO A CARICARE EMOTICON");}
               }
               
    
             }
               
        }
    Con questa funzione devo fare il "parsing" della stringa messaggio e sostituire con emoticon.

  9. #9
    Non essendo molto pratico di questo tipo di componenti ti stavo probabilmente indirizzando male, è necessario lavorare sul document.
    Occorre comunque chiarire una cosa. Nella tua chat le emoticon devono essere sostituite "al volo" in fase di digitazione oppure devi avere un box separato che fa solo visualizzazione appendendo il testo digitato in un altro box in coda e mostrando come emoticon i pattern corrispondenti digitati in tale box?

    Nel primo caso puoi seguire questo esempio (implementato con un JEditorPane ma funziona anche con un JTextPane).
    Nel secondo caso puoi a mio avviso seguire un approccio simile aggiungendo un listener al box di visualizzazione e lavorando solo sulla stringa in append.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    14
    Ok allora stavo guardando il primo caso...Io faccio digitare all'utente il messaggio in una jTextField e poi lo invio sulla JTextPane ma ora mi sorge una domanda..nella JTextField si puo' "sostituire il testo" con varie emoticons al "volo" come dicevi tu? O permette solo la visualizzazione di caratteri??

    O sostuire al volo intendi che una volta inviato il messaggio al JTextPane, l'elaborazione lo sostuisce li dentro(dentro al JTextPane stesso)??

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.