Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: JTextArea e variazioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    JTextArea e variazioni

    Ciao a tutti
    Vorrei sapere se è possibile inserire delle immagini di sfondo alle JTextArea

    Inoltre, per quanto riguarda le JTextArea, è possibile modificare gli elementi visualizzati all'interno della JTextArea tipo facendo doppio click sull'elemento visualizzato al suo interno?

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JTextArea e variazioni

    Originariamente inviato da jurij7
    Vorrei sapere se è possibile inserire delle immagini di sfondo alle JTextArea
    Dipende se vuoi mettere la immagine proprio nella JTextArea (cioè facente parte della JTextArea) oppure solamente rendere la JTextArea non opaca in modo che si "veda" in trasparenza una immagine di sfondo ad esempio disegnata nel container (che contiene la JTextArea).

    Nel primo caso si può fare ma devi estendere JTextArea, impostarla come non opaca e fare l'override di paint() (non paintComponent()) disegnando prima la immagine e poi chiamando il paint() nella superclasse con super (questa tecnica l'ho vista nel libro "The Definitive Guide to Java Swing, Third Edition").

    Nel secondo caso hai già visto un mio esempio in questa discussione.

    Originariamente inviato da jurij7
    Inoltre, per quanto riguarda le JTextArea, è possibile modificare gli elementi visualizzati all'interno della JTextArea tipo facendo doppio click sull'elemento visualizzato al suo interno?
    Dipende cosa intendi per "elemento": un carattere? una parola? ciò che è eventualmente selezionato?
    E poi modificarli ... come? Ok, fai il doppio-click. Cosa si deve modificare e come? Per favore: spiega bene.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Allora praticamente questa jtextarea rappresenta i risutalti di un calcolo ad esempi..quindi sono numeri o caratteri alfanumerici. Per esempio 22, 2200 come anche 3D.
    Io vorrei selezionare l'elemento (es.3D) il quale dovrebbe permettermi di scrivere 5D.

    Si può fare?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Allora praticamente questa jtextarea rappresenta i risutalti di un calcolo ad esempi..quindi sono numeri o caratteri alfanumerici. Per esempio 22, 2200 come anche 3D.
    Io vorrei selezionare l'elemento (es.3D) il quale dovrebbe permettermi di scrivere 5D.
    Innanzitutto se vuoi ricevere gli eventi del mouse, devi applicare alla JTextArea un MouseListener. MouseEvent ha un metodo getPoint() che ti restituisce un Point con le coordinate x,y di dove hai cliccato sul componente.

    A quel punto dovresti usare il metodo viewToModel() (JTextArea lo eredita da JTextComponent) che riceve proprio un Point e ti fornisce un offset all'interno del document (che è di tipo PlainDocument). Quindi se ti interessa la "parola" su cui hai cliccato, dovresti andare un po' avanti e indietro sul document per cercare dove inizia/finisce la parola. A quel punto tramite replace() del document potresti sostituire a quella porzione del document quello che ti pare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Ptresti mandarmi un codice di esempio ?

    Sempre se lo hai

    Ti ringrazierei molto

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Ptresti mandarmi un codice di esempio ?

    Sempre se lo hai
    Purtroppo non ho tempo adesso (e probabilmente neanche domani) di scrivere un esempio.

    Però mi è venuto in mente che, se non sbaglio, quando fai doppio-click su un componente di testo, seleziona già in automatico la parola su cui hai fatto il doppio-click. Quindi quando viene invocato il mouseClicked() la selezione è già presente e impostata. Ti basterebbe solo, al limite, usare replaceSelection()!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Si infatti facendo il doppiclick viene selezionato l'elemento

    Ma come usare replace Selection ();

    Cioè devo invocare questo metodo all'interno del codice relativo alla JTextArea?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Si infatti facendo il doppiclick viene selezionato l'elemento

    Ma come usare replace Selection ();

    Cioè devo invocare questo metodo all'interno del codice relativo alla JTextArea?
    In mouseClicked() verifichi innanzitutto che il click count sia 2 (appunto =doppio click) poi potresti usare replaceSelection() di JTextArea (ereditato da JTextComponent) per sostituire la selezione.

    P.S. consulta anche sempre il javadoc delle API. Se ti vengono segnalati nomi di classi o metodi non è che ti si può spiegare ogni volta dove, come, cosa ricevono/restituiscono ecc...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Ho un altro problema sempre per una JtextArea

    Devo inserire un numero da tastiera in questa jtextarea ma non capisco perchè devo cliccarci prima all'interno per farla abilitare ad accettare l'input (i numeri) da tastiera.

    Sai dirmi perchè?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Devo inserire un numero da tastiera in questa jtextarea ma non capisco perchè devo cliccarci prima all'interno per farla abilitare ad accettare l'input (i numeri) da tastiera.
    Per poterci scrivere dentro, la JTextArea deve avere il "focus". Se non c'è l'ha è chiaro che il focus devi darglielo. Tramite click del mouse o con TAB da tastiera fino ad arrivare alla JTextArea o in altro modo (es. programmaticamente). No focus, no party.
    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.