Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-07-2009, 19:15   #1
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
[JAVA] JTextArea con formattazione standard

praticamente vorrei che una textarea permettesse l'inserimento di 25 caratteri per riga andando a capo automaticamente per massimo 6 righe.


è una cosa orribile ma mi serve.


per ora non vi dico come ho risolto (hihihhii) ma aspetto ANSIOSAMENTE vostri suggerimenti.

ho visto che potrei settare nel costruttore righe e colonne....ma non mi funziona O_O
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2009, 19:57   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
righe e colonne nel costruttore sono solo un concetto visivo che influenza la dimensione preferita dell'area di testo (consentirà di visualizzare almeno tot righe e tot colonne).

Il limite che vuoi applicare è nel modello dell'area di testo, il suo Document. Astrattamente si tratta di catturare l'inserimento di testo nel metodo insertString del Document (o nell'omologo di un DocumentFilter applicato al Document) e verificare se il paragrafo corrente può accettare o no altro testo.

In caso affermativo inserisci, altrimenti devi riportare i caratteri in eccesso rispetto al punto di inserimento nel paragrafo successivo, andando a scombinare tutto.

Se ti trovi nel metodo insertString di un Document e offset è la posizione di inserimento del testo - che ottieni come parametro dell'invocazione insertString, allora arrivi al "paragrafo" in cui il testo è inserito con:

Element root = getDefaultRootElement();
int index = root.getElementIndex(offset);
Element paragraph = root.getElement(index);

La lunghezza del paragrafo è:

int len = paragraph.getEndOffset() - paragraph.getStartOffset();

Se str è il testo che il metodo insertString riceve come sequenza di caratteri da inserire allora è chiaro che str è inseribile se:

getLength() + str.length() < 25 * 6; //limite di 6 righe da 25 caratteri

e se:

ed è inseribile nel paragrafo corrente se:

len è str.length() < 25; //25 caratteri per paragrafo

Limitandoci a questo diremmo che se le due condizioni su citate si verificano allora il testo str è inserito con (siamo sempre in una sovrascrittura di insertString):

super.insertString(text, offset, att);

altrimenti bisogna vedere. Se è ecceduto il limite totale di caratteri (6 * 25) per una qualsiasi sottostringa di str allora non se ne fa nulla e non si invoca pertanto super.insertString. Se invece il limite è parzialmente ecceduto (magari sono disponibili 3 caratteri e str è lunga 10) puoi decidere di inserire 3 caratteri o rifiutare l'intera stringa.

Idem nel caso in cui si superi parzialmente il limite di caratteri per paragrafo.

Tieni conto che la digitazione è solo uno dei mezzi attraverso cui un componente di testo Swing può ricevere del testo. Gli altri precotti sono il drag and drop e il copia-incolla e questi possono causare l'inserimento di più caratteri per volta, tra i quali anche dei separatori di paragrafo (il \n).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2009, 21:55   #3
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
ok, chiaro come al solito.

ora vedo se vale la pena applicare il documen o se trovare una soluzione più spartana (dato che mi serve una cosa spartana).
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2009, 22:02   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Be', se funziona chissenefrega se è spartana. Ricorda solo di provare la soluzione che scegli anche con il copia e incolla.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2009, 23:38   #5
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Be', se funziona chissenefrega se è spartana. Ricorda solo di provare la soluzione che scegli anche con il copia e incolla.
la mia idea era parsare la stringa.

niente di più niente di meno.

praticamente sto facendo la cartolina (ricorda la discussione sulla stampa...sempre li siamo) e volevo inserire un messaggio da stampare.

solo che per non sbattere troppo ho pensato "forzo a inserire massimo 6 righe da 25-30 caratteri e ciao." (non mi serve nulla di iper"abstract").

quindi mi era venuta l'idea di usare la textarea con righe e colonne.

poi tu mi hai chiarito il concetto...alla fine userò una textarea e parserò il testo con un classico stringtokenizer o con gli indici...devo vedere come riesco a creare meno casini
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
SpaceX ha confermato che Flight 14 sar&a...
Googlebook pronto al debutto: Google apr...
Guida all'acquisto: quale lavapavimenti ...
Google Maps su Android Auto introduce fi...
AMD Ryzen 5 5500F: fino al 16% di presta...
L'ecosistema partner di Microsoft cresce...
Oracle registra un boom nella divisione ...
Amazon Prime Video sfida TikTok con le n...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Oracle presenta Java 27 con diverse novi...
Il microscopio dell'EPFL vede più...
Volvo avvia la produzione dei nuovi cami...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v