J-Flash V1.11 alpha


JapFlash was renamed to J-Flash. I was told, the term "Jap" is considered a racist term which I was not aware of. I am sorry, and would like to apologise to anybody offended by the naming of this program. It is, after all, intended to help to study Japanese and thereby improve intercultural contacts.

Introduction
Loading Lessons
Studying Vocabulary
Lesson Files
Options
Bigger Fonts
How to Get Lesson Files

Introduction

J-Flash is a simple tool for studying japanese vocabulary and kanji. V1.1 is still alpha. . J-Flash 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 for the lesson selected in the window below, or "Never Opened" if it has never been opened by J-Flash.
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 Jeodes Java 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

J-Flash 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. 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 to its left. If you got it wrong, it is put on the pile on its right.
There are five review modes, and a browse mode. You can select the review-modes in the "Test Mode" menue. Browse mode is selected  in the Strategy menue. (I guess I should consider changing the names of the menues.)  If you are studying Kanji Cards you can choose to view the compounds in an extra screen by selecting "Compounds extra".

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). Depending on the test mode one of the fields K/R/M (Kanji/Reading/Meaning) is uncovered. To uncover the next field, tap on the cards area. Every time you tap on the card, another field is uncovered until all information has been revealed. Then the cards bottom flashes red and green. This signalises that all information has been revealed and you should tell the program if had it right or wrong. Tap on the left half of the card  in case your answer was right. If you got it wrong, tap on the right half of the card. 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.
In browse mode, you can browse quickly through a pile. Select "Browse Mode" in the "Strategy" menue, click on the pile you want to open, and the first card is shown. Browse through the pile by tapping on the cards area. You can use this mode to move cards to other piles. As in review mode, when a card is shown and you click on a pile, it will be put on this pile.

You can use the keyboard instead of the stylus/mouse. 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. Its error history, last viewed information and other information is stored in the additional information field. The additional information field starts with an #. It comes after the cards definiton.
There are two types of cards: kanji cards and vocabulary cards. Kanji cards may also have information about compounds using this character. Therefore they are slightly more complex than vocabulary cards.
A vocabulary card definition requires the fields KANJI and MEANING. The READING-field and it´s enclosing brackets are optional.
A kanji card definition starts with an upper case K as first character of the line. The the KANJI, the MEANING and the READING field follow. Up to this point the card definition syntax is the same as for vocabulary cards (apart from the K at the beginning of the line). Afther the reading field there is a string enclosed in curly brackets. This string defines the compounds used with this character. Each compond is defined just like a vocabulary card. Two compounds are separted by a vertical bar.
J-Flash´s card layout works like a table. The slash, does not delimit a line, but separates row of readings and meanings.  The first reading appears in the same row as the first meaning. This allows to specify the meaning for each reading separtely. If a reading has two meanings, use a komma to separate the readings. (I guess an example will make that clearer.. see the example file below).

When saving  a lesson the lesson file is completely rewritten. If the description line was empty it is set to the lessons file name without extension.
J-Flash can read KingKanji  and KanjiFlash  files, since their syntax is identical to the minimal requirments for a J-Flash lesson file.

A typical file looks like this:


# Description: simple.utf
# Last Opened: 1039762487721
# Correct Cards:1
# Cards: 2

# Pile 2
Kau [KAI,E/a(u)] /Meeting,Society,Club/to meet/ {kaisha [kaisha] /Company/|taikai [taikai] /Conference/}#W-1039762503614
# Pile 3
itoguchi [itoguchi] /thread end,beginning/ #RRW-1039762503614
This file defines the kanjis au and the vocab itoguchi. The red character should be kanji, the green hirgana or katakana and the blue ones romaji.
KANJI and READING have to consist of japanese characters in case bitmap fonts are used.
MEANING must consist of roman characters when bitmap fonts are used.
Use ascii (romaji) separators!

When you write your own lesson files you do not need to enter anything after the hash # including the hash itself. The string after "#Description:_" appears in the preview pane. Apart from the description all information after the hash is internal to J-Flash.

For those interested, the header format is (exactly one space after the colon is required):

# 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.
# Corect Cards: number of cards which were recognised correctly the last two times.
# Cards: Number of cards in the file

The piles are separated by:

# Pile: 3

Options

You can pass the name of the options file as parameter in the command line when you start J-Flash. On my desktop-system the parameter for the virtual machine looks like this: "-DIniFile=E:\javaProj\j-flash\japFlash.txt". This generates a system property called IniFile set to the specified path. JapFlash uses the information in this file to initialise the program.  On the Z this file resides in the directory QtPalmtop/j-flash, it is called j-flashini.txt .
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:

#J-Flash by insaneLX
#Sun Dec 22 13:21:43 PST 2002
smallRomajiFontName=Dialog  #name of the romaji font (system font)
bigKanjiFontName=k16x16.gz  #name of the big kanji font (system font or k16x16.gz/ or k32x32.gz k64x64.gz if those fonts are installed)
testMode=K-R-M  #last used test mode
defaultScreenWidth=314 #lastscreen width
directoryList=SL#/home/root/Documents/application/octet-stream|CF#/mnt/cf/Documents/application/octet-stream|
lastViewedDirectory=/mnt/cf/Documents/application/octet-stream #List of the directories, the part before the hash appears in the dropdown list, the part after the hash is the path, two entries are separated by a vertical bar
stackBackgroundEndColor=255,229,229 #Background color of the rightmost pile
defaultScreenHeight=292 # last screen height
liftProbabilityFactor=1.5 # factor by which the probability of a card beeing lifted from a certain pile increases from one pile to the next one on the right.
backgroundColor=229,244,255 #background color
smallKanjiFontName=k16x16.gz #name of the small kanji font (system font or k16x16.gz/ or k32x32.gz k64x64.gz if those fonts are installed)
loadLastFileAtStartup=true #load last file at startup
cardType=1 #1 = compounds extra
stackBackgroundStartColor=229,255,229 #background color of the leftmost pile
bigFontSize=32 #size of the big kanji font
stackStartColor=76,255,76 #color of the leftmost pile
testStrategy=Review #chosen strategy
smallFontSize=16 #size of the small kanji font
fileName= #Name of the last opened lesson
defaultScreenY=269  #last y position of the main frame
stackEndColor=255,76,76 #color of the righttmost pile
defaultScreenX=395 #last x position of the main frame

Bigger Fonts

You can simply change the font size in the options file. In case of true type fonts this is the best option. One such unicode font which includes kanji is bundeled with Norbert Siepenkoetters great program KnajiNirvana. If you use Bitmap fonts they will get granular. The actual font size should be a multiple of the original font size to reduce alaiasing effects. Alternatively you can download the font-installers k24x24 or k32x32 and set the font file names and sizes accordingly, e.g. bigKanjiFontName = k24x24.gz, bigFontSize = 24.


How to Get Lesson Files

Write them! Well, you could use KingKanji  and KanjiFlash  lesson files. Actually it would be nice if someone decided to write a converter for Kanjidic files.


Contact

If you still got questions: insaneLX@gmx.at.