Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    29

    [JAVA] JTextArea selezione multiriga

    Ciao a tutti,
    ho un piccolo problema: come posso disabilitare la selezione multipla di più righe su di un oggetto JtextArea?
    E' sicuramente una gran cavolata ma non riesco a capire come fare...
    Grazie!

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

    Re: [JAVA] JTextArea selezione multiriga

    Originariamente inviato da cg76
    ho un piccolo problema: come posso disabilitare la selezione multipla di più righe su di un oggetto JtextArea?
    E' sicuramente una gran cavolata ma non riesco a capire come fare...
    Gran cavolata .... nel senso di "semplice" no, non proprio. La "selezione" è un insieme contiguo di caratteri selezionati e per default può essere ovunque e di qualunque lunghezza possibile (in base al testo). Quindi puoi selezionare un pezzo di una riga o una riga intera o un pezzo finale di una riga e l'inizio della successiva, ecc...

    Se vuoi poter restringere la selezione devi restringere la "navigazione" del caret in modo furbo/appropriato e questo si può fare implementando un apposito NavigationFilter.
    Vedi il setNavigationFilter(NavigationFilter filter) di JTextComponent e la classe javax.swing.text.NavigationFilter.

    Ma dovresti leggere bene la documentazione e magari cercare qualche esempio, anche leggermente diverso di navigation filter giusto per capire come funziona.

    E nota, per completezza, che generalmente per "righe" nei campi di testo si intende "paragrafi", che sono delimitati dai newline.
    Se per via del wrapping in un JTextArea hai un paragrafo che spanna su es. 5 righe e vuoi poter selezionare solo 1 riga "fisica" di questo paragrafo, probabilmente ragionando e gestendo bene offset e posizioni fisiche si può fare ma .... sarebbe meno banale ancora.
    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
    May 2007
    Messaggi
    29
    Grazie mille x la risposta!
    Pensavo che fosse gestita diversamente, visto che con il mouse si possono scorrere le righe proprio come se fossero singole... infatti la selezione multipla deve essere per forza gestita con l'ausilio dello shift come avviene sempre in questi casi.
    Provo a vedere se ce la faccio, in caso posterò il codice.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    29
    ... e se invece fosse una jList, sarebbe sempre da gestire allo stesso modo?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da cg76
    ... e se invece fosse una jList, sarebbe sempre da gestire allo stesso modo?
    Stesso modo assolutamente no. La gestione della "selezione" in un JList è totalmente differente da un JTextArea. JList visualizza gli elementi in "celle" e la selezione può essere: singola, intervallo singolo, intervallo multiplo.

    Quindi se imposti:

    codice:
    tuaLista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    solo 1 cella per volta può essere selezionata. Sì ... proprio tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    29
    Grazie mille, con jList e setSelectionMode ho risolto il problema.
    Buona giornata!

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.