JapFlash V1.0


JapFlash is a simple tool for studying japanese vocabulary and kanji. V1.0 should not be considered more than beta. I decided to publish it because I am leaving for Japan and won´t have the chance to do any development for a while. JapFlash runs under Personal Java 1.2. The program uses built in bitmap font rendering algorithms to display japanese characters (taken from Marshall Ramseys KanjiFlash).  If  japanese TTF support is available on your System you can edit the options file such that the program uses true type fonts.

Loading Lessons

To get to the load lesson screen, simply press the load button. If you set the options such that the file you reviewed last ist not automatically reloaded, or you did not save the file when you quit the program, the load lesson screen appears automatically on startup.
The upper part of the load lesson screen shows a summary of the information (stored in the lesson files header) for the lesson selected in the window below, or "Never Opened" if it has never been opened (actually this means the header is empty).
Choose the lesson you want to open in the list in the center of the screen. This list shows all files ending with utf, ut8, jis or sjs in the directory specified in the text field on the bottom of the screen. On the Z, you can only open files encoded in 8 bit unicode ( utf, ut8) because jis and shift jis decoders are not shipped with the Jeode classes. You can enter any directory in the directory-textfield, or you can choose one of the predefined directories in the drop down list above. Those entries can be edited in the options file.

Studying Vocabulary

JapFlash leaves it to you to decide wheter you know a kanji or not. It just shows the flash cards, uncovering the information step by step and asks if you got it right or not when the full information was revealed.
There are 5 piles of cards on the screen (the number of piles can be modified by the options file.). When you first open a lesson, all cards are put on the rightmost pile, which is where the cards you know least lie. If you answer a card correctly two times in a row, it is put on the pile on its left.If you got it wrong, it is put on the pile on its right.
There are two review modes: English to Kanji and Kanji to English. The button in the left top corner of the screen toggels between these modes.
To lift a card from a certain pile just tap (or click) on it. If you want to lift a card from a random pile, tap anywhere on the screen(, but on a pile). In Kanji to English mode, the card appears with the kanji field uncovered. To uncover the next field, tap on the cards area again. If a reading is defined for the card the reading field is uncovered. If you tap once more, all fields i.e. kanji, reading and meaning are shown and the card background flashes red and green. This signalises that all information has been revealed and you should tell the program if know the card or not. To do this, tap on the left half of the card (the part which flashed green) in case your answer was right. If you got it wrong, tap on the right half of the card (the part which flashed red). The program then puts the card back to either the pile the card was lifted from or to the left or right neighbour. The answer is stored in the right-wrong history which is displayed in the bottom part of each card.
When you tap on a pile while a card is lifted the card is put on this pile without adding to its right-wrong history. If you tap on the background, the card is pushed pack to the pile it was lifted from.
You can also use the keyboard for reviewing. When using the keyboard the active pile is drawn with a black rectangle round it.
Cursor-Up When no card is beeing shown, the computer randomly selects a pile and lifts a card. In case a card is lifted, the next field is uncovered. If all fields are uncovered and the computer expects an answer, this key has no effect.
Cursor-Down Lifts a card from the selected pile, or pushes it back to the selected pile.
Cursor-Left Moves the selection left unless the card flashed red and green. In this case pressing the cursor-left key signalises a correct answer.
Cursor-Right Moves the selection right unless the card flashed red and green. In this case pressing the cursor-right key signalises a wrong answer.

Lesson Files

A lesson file consists of a header and a body. The header contains general information about the lesson (last viewed, description...).  The body contains the card definitions lines and lines which indicate the start of a new pile. Header and pile separators are optional. A card is defined by one line in the lesson file. A card definition requires the fields KANJI and MEANING. The READING-field and it´s enclosing brackets, the RIGHT-WRONG fields and the LASTREVIEWED-fields are optional.
When saving all optional fields are generated. The description line is set to the file name without extension.  KingKanji  and KanjiFlash  use the file format without the optional fields, therfore you can open lesson files designed for those programs.

A typical file looks like this:

# Description:  Description of the lesson. It can be modified by the user.
# Last Opened: Time in milliseconds UTC when the a flash card in this lesson was last reviewed.
# Cards: Number of cards in the file
# Correctness: percentage of cards which were recognised correctly two times consecutively.
# Piles : Number of piles in the file
# Pile: 0
# Pile: 1
# Pile: 2
KANJI [READING] MEANING/ #RRRRW -101664125800
KANJI [READING1/READING2] /MEANING/ #RRRW -101664154700
# Pile: 3
KANJI [READING1/READING2] /MEANING1/MEANING2/ #RRWR -101664128200
KANJI /MEANING1/MEANING2/ #RRWRR -10166414510

When you write your own lesson files it is sufficient to enter a lile like the following:

KANJI [READING1/READING2] /MEANING/
KANJI [READING1/READING2] /MEANING1/MEANING2
KANJI READING1] /MEANING1/
KANJI /MEANING/

The header format is:

# Description:  Description of the lesson. It can be modified by the user.
# Last Opened: Time in milliseconds UTC when the a flash card in this lesson was last reviewed.
# Cards: Number of cards in the file
# Correctness: percentage of cards which were recognised correctly two times consecutively.
# Piles : Number of piles in the file

A piles separator looks like this:

# Pile: 0

A card definition looks like this;

KANJI [READING1/READING2/...] /MEANING1/..../ #RIGHT-WRONG  - LAST-REVIEWED

where,

KANJI and READING have to be a strings in japanese characters when bitmap fonts are used.
MEANING has to be a string in roman characters when bitmap fonts are used.
The READING, the RIGHTW-WRONG and the LAST-REVIEWED information is optional.
The RightWrongJistory has a capacity of 16 characters.
LastAnswered is the time the difference, measured in milliseconds, between the time the card was ansered last and midnight, January 1, 1970 UTC.

Installing:
  On the Zaurus just open JapFlashV10.jpk and select installation to RAM ( I haven´t tried CF card installation yet). The installer will do the rest :-)

Options

You can pass the name of the options file as parameter in the command line when you start JapFlash. On my desktop-system the parameter for the virtual machine looks like this: "-DIniFile=E:\javaProj\japFlash\japFlash.ini". This generates a system property called IniFile set to the specified path. JapFlash uses the information in this file to initialise the program. For ease of programming the entries in the ini file use the name of the corresponding variables in the source code, in fact they are a copy of those variables.
There are four types of entries:

Due to my lazyness the order of the entries is none.
The ini file of my desktop installation looks like this:

#JapFlash by insaneLX  Comment
#Mon Mar 25 22:13:40 CET 2002 Comment
meaningFontSize=16 Size of the font used for the meaning when using TTF-fonts
isDefault=true Size of the font used for the meaning when using TTF-fonts
directoryName=
testMode=0 English to Kanji  (0) or Kanji to English (1)
defaultScreenWidth=240
readingFontSize=16 Size of the font used for the reading when using TTF-fonts
kanjiFontName=Dialog Name of the font used for kanji when using TTF-fonts
bitmapFontFileName=k16x16.gz Name of the bitmap font, if bitmap fonts should be used. If true type fonts should be used leave this string empty. Only 3 file names are allowed (you can choose the directory though):
k16x16.gz   a 16 by 16 font
k24x24.gz   a  24 by 24 font
k32x32.gz   a 32 by 43 font

directoryList=CF#C:/Eigene Dateien/MNGU-UTF8/|RAM#E:/ List of entries and directories for the load lesson screen. Eeach entry can have various directories whose content appears in the lesson selection panel, when the entry is chosen in the drop-down list. The directories have to be separted by a semikolon. Entries are separated by a vertical bar, their name is followed by a hash which is followed by the directories for that entry.
stackBackgroundEndColor=51,244,255 Color of the rightmost cardstacks background (blue)
defaultScreenHeight=300
liftProbabilityFactor=2 When you leave the choice from which pile to lift the card to the computer, it uses proability-factors to control the probability for each pile to be chosen. A factor of 2 means that it is two times more likely that a card is lifted from a certain pile than from its left neighbour.
kanjiFontSize=32 Size of the kanji-font
backgroundColor=229,244,255 Light blue
loadLastFileAtStartup=true
backgroundImageFileName= You can specify a background image (gif or jpg)
stackBackgroundStartColor=229,244,255 Color of the leftmost cardstacks background (light blue)
meaningFontName=Dialog
stackStartColor=229,117,255 Color of the leftmost cardstacks background
fileName= Name (with absolute path) of the lesson file open when the program was closed. Empty if
you chose not to save the file when closing.

readingFontName=Dialog Name of the true type font used for the reading text field
stackEndColor=51,244,255 Color of the rightmost cardstacks background

Time is up...... I have move my computer to my parents and pack my stuff.... anyway you can try to contact me if you got questions: insaneLX@gmx.at.