Přijde mi, že se míchají dohromady znaky a klávesy. "š" je
unicodový znak, kdežto BACKTAB je klávesa a žádný znak
pro ni neexistuje. Stejně tak "č" je znak, kdežto
F5 je klávesa a nemá znak.

Když zkusím spustit
http://java.sun.com/docs/books/tutorialJWS/uiswing/events/example-1dot4/KeyEventDemo.jnlp
a mačkat č a F5, tak "č" produkuje event KEY_TYPED
se znakem "č", kdežto F5 produkuje KEY_PRESSED s keykodem pro F5.

Tj. řešení je, že funkčním klávesám nepatří žádné znaky
a proto je nemusíte nikam mapovat.

Makub

URBAN Leos wrote:
Ahoj,
potřeboval bych poradit od někoho kdo vidí do Unicode.

Na SF existuje projekt Charva, který umí dělat v Javě terminálové aplikace. Bohužel se vyznačuje tím že nemá rád češtinu natož unicode.

Kouknul jsem se na to a po změnách se mi podařilo vyřešit snad všechno co je potřeba. Vidím česky, píšu česky a to všechno pod UTF-8.

Musel jsem předělat čtení znaků aby akceptoval UTF-8 a při té příležitosti jsem narazil na problém.

Unicode znak "š" s kódem 0x161 odpovídá klávese BACKTAB v curses, která se používá na pohyb formulářem po políčkách dozadu. A obdobně "č" s kódem 0x269 odpovídá klávese F5 a bude toho určitě víc.

Při načítání z curses je možné určit, zda se jedná o BACKTAB (getch vrátí jeden znak s kódem nad 255) nebo o "š" (getch vrátí dva UTF-8 znaky z nichž se stejná hodnota složí).

Jenže co dál? V javě (resp. charvě která používá stejný model jako AWT/Swing) je to KeyEvent se stejným číslem.

Já to vyřešil tak, že jsem na Unicode stránkách našel prostor pro privátní znaky (rozsah od 0xE000 do 0xF8FF) a při získávání znaků šoupnu ty funkční klávesy do tohoto prostoru.

Tím jsem znemožnil čínštině a japonštině definovat soukromé znaky respektive používat je v charvě.
A tak i když všechno funguje dobře  nevím jestli je to ideální postup...

Neexistuje nějaký vhodnější prostor v Unicode, rezervovaný pro podobné použití? Nebo přímo prostor pro klávesy jako je Fxx, PAGE_DOWN, ENTER, BACKTAB a spol.? Kam byste to mapovali vy?

Děkuji za případné názory.

Leoš


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem