システムブログ システムソリューションのメンバーが
システムの素晴らしさを紹介いたします

株式会社東洋のシステム開発は、無駄のない仕様をはじめ、簡単な入力画面や検索機能が人気です。
システムソリューションのメンバーがその素晴らしい機能をひとつずつ紹介いたします。

QuestPlusのコンピュータ言語

今回は、システム的な興味のある方向けに、弊社で開発しております販売管理システムQuestPlusがどのようなコンピュータ言語で作られているかを紹介させて頂きます。

QuestPlusは、Javaという言語で作られています。GUI部分はSwingではなくJavaFXで作られています。QuestPlusを作り始めた当初は、未だJavaFXは正式版が出ておらず、Javaのバージョン7にJavaFXのライブラリを追加する形で開発していました。その頃のJavaFXでは日本語関係機能が不足しており、特に、日本語IME制御機能は日本語を扱う業務ソフトではほぼ必須の機能であり、なければ業務ソフトとして致命的でした。

日本語IME制御機能というのは、例えば、数字を入れる入力域ではキーボードからの入力をそのまま入れるモードにし、日本語を入れるべき入力域では仮名漢字変換モードにする(日本語でも、半角カタカナを入れたい入力域では半角カタカナモードにする)などの機能です。この自動切り替えにより、仮名漢字変換用のキーを押す手間が省けることになります。

例えば、ローマ字しか入れない入力域(以下の画像の黄色の背景色の領域)では、

日本語IMEは、半角英数になっています。

これが、日本語の漢字が入ると期待される入力域(以下の画像の黄色の背景色の領域)では、

日本語IMEは、ひらがなになっています

このモード変換が、自分で変換キーを押す必要がなく、自動的に変わります。

ただ、Javaのバージョン8で正式版JavaFXが組み込まれて提供され、その時には日本語IME制御機能が提供されるとアナウンスされていた為、大丈夫だろうと信じていました。
しかし、残念なことに正式版でも日本語IME制御機能は提供されず、仕方なく自社で組み込むことにしました。

幸いなことにJavaには、JNIという他の言語で書かれたコードと連携する為のAPI仕様があります。取り敢えず動作OSとしてはWindowsを想定しており、Windows向けにはC(C++含む)言語のAPIとして日本語IME制御機能が含まれている為、C言語でその制御部分を作成し、Java側ではそれを呼び出す制御を作成すれば済みます。

そのように作成して、QuestPlusでは日本語IME制御機能が組み込まれています。
動作OSは制限が掛かるもののJavaFXで不足している機能でも、JNIという機能により実現させることができます。

以上のような方法でQuestPlusを制作しております。さまざまな業種でご利用いただいているQuestPlusの導入事例もぜひご覧下さい。