It would be much better if you contact some persons who are already
working in Urdu. I know a research centre who has taken up the project
of providing Urdu on all levels of computing platforms. As far as I know
their work is concentrated on Microsoft technologies (You might have
seen some Urdu support in Windows XP). I don't know if they are working
for Urdu in Java or for that matter even on Linux. You can visit
http://www.crulp.org for contact info.
Another matter of your ineterest is the keyboard mapping. Well first of
all you should be familiar with Unicode, and that how different
languages, even French, German, Arabic. etc. are mapped to keyboard.
Most of the Operating Systems provide this functionality, so the Apps do
not have to explicitly handle this issue (Like Linux, Windows 200/XP, etc.).
One more problem is the rendering of Urdu font on screen. An open
standard OTF is available for developing extremely complex fonts. This
standard supports left-to-right, right-to-left, top-to-bottom writing
styles. Also it supports a lot of other features that a TTF font cannot
even dream of accomplishing. As far as I know Java does not have the
full implementation of OTF rendering, and at present it cannot render
all Urdu ligatures. Microsoft also has a better (but not perfect) OTF
renderer (called uniscribe) but it is investing heavily to imrove it.
The research centre I mentioned earlier is actually also developing OTF
font for uniscribe so that a much more readable & natural font is
available as standard in future versions of Windows. It would be a great
help if the same level of ease would be available on Java platform.