2013-07-11 17 views
5

Mam następujący tekst:.Jak zmusić JTable do NIE odwracania tekstu w przypadku, gdy zawiera on znaki arabskie?

وزا słowo

Ale podczas wyświetlania go na moim JTable wygląda to tak:.

słowo وزا

W każdym JLabel lub TextArea lub inne dane wejściowe wyglądają jak oryginalny tekst:

وزا. Słowo

TYLKO na JTable Mam taki problem.

Nie obchodzi mnie, czy ma sens, czy nie, i tak, wiem, że język arabski jest pisany od prawej do lewej. Domyślam się, że Java go wykrywa i automatycznie go odwraca, ale ja tego nie chcę.

Uwaga: Nie mam pojęcia, co oznacza وزا, a do celów praktycznych nie obchodzi mnie to. Jest to również nieistotne dla tego przypadku. وزا. Słowo nie ma sensu i słowo . وزا robi lub viceversa.

Uwaga 2: Tekst, odwrócony lub nie jest zawsze wyrównany w lewo (jak się spodziewam).

Z góry dziękuję.

+0

Aby uzyskać lepszą pomoc wcześniej, opublikuj [SSCCE] (http://sscce.org/). Sądzę, że część problemu polega na tym, że nie ma sensu mieszanie obu stylów tekstu od lewej do prawej i od prawej do prawej (zgadywanie, które jest ... znakami arabskimi obok angielskiego?). Czy nie mógłbyś reprezentować jednego jako wskazówki? –

+0

Jestem ciekawy, aby zobaczyć ekran, który pokazuje powyższy opis. Czy możesz to udostępnić. – Amarnath

+0

Którą wersję Java używasz. JLabel powinien również renderować ten ciąg z łacińskimi znakami po lewej stronie arabskiego słowa. – jarnbjo

Odpowiedz

5

Domyślam się, że Twój domyślny Locale daje default renderer a ComponentOrientation, który jest niezgodny z Twoimi innymi ustawieniami. Możesz spróbować utworzyć custom renderer o preferowanej orientacji za pomocą jednego z podejść sugerowanych here.

Dodatek: java.text.Bidi obsługuje zastępowanie dwukierunkowe; może być możliwe użycie punktów kodu kontroli formatu unicode, zgodnie z tym, co sugeruje ten Q&A.

+0

Obecnie próbuję tego w tej chwili, bez powodzenia.Ponadto, czy orientacja nie jest bardziej związana z wyrównaniem tekstu niż sposobem jego drukowania? Wether وزا. Słowo lub słowo وزا zawsze jest wyrównane w lewo (jak się spodziewam). –

+0

'java.text.Bidi' obsługuje zastępowanie dwukierunkowe; IIRC, samouczek "TextComponentDemo" używa 'DocumentListener' do wyświetlania niektórych szczegółów; zobacz także ten [Q & A] (http://stackoverflow.com/q/6177294/230513) .. – trashgod

+0

Powinieneś dodać ten ostatni komentarz jako odpowiedź ... więc mogę oznaczyć to jako rozwiązane, ponieważ zadziałało !! Dziękuję bardzo trashgod. Będę czekać na twoją odpowiedź, aby oznaczyć ją jako rozwiązaną. –

Powiązane problemy