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 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
