2013-07-11 9 views
5

Ho il seguente testo:.Come forzare JTable a NON invertire il testo nel caso in cui contenga caratteri arabi?

وزا parola

Ma quando la visualizzazione sul mio JTable sembra che questo:.

parola وزا

In ogni JLabel o TextArea o qualsiasi altro input assomiglia al testo originale:

parola

SOLO sulla JTable Sto avendo tale problema.

Non mi interessa se ha senso o no, e sì, so che la lingua araba è scritta da destra a sinistra. La mia ipotesi è che Java lo stia rilevando e lo inverta automaticamente, ma non lo voglio.

Nota: non ho idea di cosa significa وزا, e per scopi pratici non mi interessa. È anche irrilevante per questo caso se وزا. Parola non ha senso e parola. وزا fa o viceversa.

Nota 2: il testo, invertito o non è sempre allineato a sinistra (come mi aspetto che sia).

Grazie in anticipo.

+0

Per un aiuto migliore, pubblicare un [SSCCE] (http://sscce.org/). Immagino che parte del problema sia che non ha senso mescolare gli stili di testo Left-to-Right e Right-to-Left (supponendo che sia .. Caratteri arabi al lato dell'inglese?). Potresti non rappresentarne uno come suggerimento? –

+0

Sono curioso di vedere la schermata che mostra la descrizione sopra. Per favore, puoi condividerlo. – Amarnath

+0

Quale versione di Java stai usando. Una JLabel dovrebbe anche rendere quella stringa con i caratteri latini a sinistra della parola araba. – jarnbjo

risposta

5

A un certo punto, il valore predefinito Locale sta dando a default renderer uno ComponentOrientation che non è coerente con le altre impostazioni. Potresti provare a creare un custom renderer con l'orientamento preferito utilizzando uno degli approcci suggeriti here.

Addendum: java.text.Bidi supporta il riordino bidirezionale; potresti essere in grado di utilizzare punti di codice di controllo in formato unicode, come suggerito in questo Q&A.

+0

Attualmente sto tentando di farlo al momento, senza fortuna.Inoltre, l'orientamento non riguarda più l'allineamento del testo piuttosto che il modo in cui viene stampato? Per quanto riguarda وزا. Parola o parola. وزا è sempre allineato a sinistra (come mi aspetto che sia). –

+0

'java.text.Bidi' supporta il riordino bidirezionale; IIRC, l'esempio del tutorial 'TextComponentDemo' usa un' DocumentListener' per mostrare alcuni dettagli; vedi anche questo [Q & A] (http://stackoverflow.com/q/6177294/230513) .. – trashgod

+0

Dovresti aggiungere questo ultimo commento come risposta ... quindi posso contrassegnarlo come risolto perché ha funzionato !! Grazie mille. Attenderò la tua risposta specifica per contrassegnarla come risolta. –