Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    Schermata grafica visualizzazione messaggi

    Tempo fa creai in java una chat, tramite socket, dotata di interfaccia grafica.
    Inizialmente la history della conversazione era visualizzata semplicemente su un JTextPane, quindi visualizzando semplicemente testo ex:
    conv1.png

    Ora vorrei dare un aspetto grafico più carino mostrando la history con le "nuvolette" similmente a come avviene su alcuni programmi di messaggistica tipo whatsapp e facebook messenger
    esempio:
    conv2.jpg

    Che procedura mi consigliate?
    Che componenti grafiche usereste?
    Vorrei in qualche modo anche predisporre l'app all'utilizzo delle emoticon..

    Una mia idea sarebbe di usare ad esempio un JPanel, renderlo scrollabile e disegnarci dentro i messaggi (drawComponent) ma è piuttosto elaborata come procedura anche perchè ad ogni repaint deve ridisegnare tutto e quindi tener traccia in qualche modo di tutti i messaggi precedenti (la mia app seppur client-server riguardo le conversazioni non salva niente sul server ne tantomeno sui client)..alternativa sarebbe usare un editorpane ma le problematiche sono sempre le stesse di quelle con il JPanel..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da zipangulu Visualizza il messaggio
    Ora vorrei dare un aspetto grafico più carino mostrando la history con le "nuvolette" similmente a come avviene su alcuni programmi di messaggistica tipo whatsapp e facebook messenger

    Che procedura mi consigliate?
    Dipende da quante "nuvolette" ci potrebbero poi essere. Se il numero è relativamente basso, es. 30, 60, o giù di lì, una soluzione è: un JScrollPane che contiene un JPanel, quest'ultimo con un BoxLayout "verticale" in cui sono impilati dei componenti custom che estendono JComponent o JPanel e usando un mix di custom painting e es. JLabel si possono creare le nuvolette.

    Se il numero deve essere potenzialmente alto (es. 500 ...), tenterei la strada con un JList (in JScrollPane, chiaramente) che utilizza un renderer molto (molto!) personalizzato.

    In entrambi i casi ci sarebbero alcune questioni sul dimensionamento da considerare.

    Ma dovrei provarci io per valutare ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.