アプレットやJavaフォームの移行に関する注意点を説明します。
フォーム拡張機能が使用されたアプレットやJavaフォームを移行する
フォーム拡張機能が使用されたアプレットやJavaフォームは、そのまま移行することができません。これは、フォーム拡張機能がJDK/JRE 7およびJDK/JRE 8をサポートしていないためです。
フォーム拡張機能が使用されたアプレットやJavaフォームを移行したい場合は、AWTやSwingを使用したアプレットやJavaフォームに変更してください。フォーム拡張機能が使用されたアプレットやJavaフォームであるかを判断するには、以下のクラスが基底クラスであるかを確認します。移行したい場合は、基底クラスを以下のクラスに変更します。
移行前の基底クラス | 移行後の基底クラス |
---|---|
com.fujitsu.apworks.compod.ui.CDApplet | java.applet.Applet |
com.fujitsu.apworks.compod.ui.CDJApplet | javax.swing.JApplet |
com.fujitsu.apworks.compod.ui.CDFrame | java.awt.Frame |
com.fujitsu.apworks.compod.ui.CDJFrame | javax.swing.JFrame |
com.fujitsu.apworks.compod.ui.CDDialog | java.awt.Dialog |
com.fujitsu.apworks.compod.ui.CDJDialog | javax.swing.JDialog |
com.fujitsu.apworks.compod.ui.CDPanel | java.awt.Panel |
com.fujitsu.apworks.compod.ui.CDJPanel | javax.swing.JPanel |
注意
フォーム拡張機能が提供する以下の機能は、移行することができません。機能に依存する処理は、代替の処理に変更していただくか、処理を削除してください。
フォーカス移動順定義
ステータスバー
注意
派生フォーム機能を使って作成したアプレットやJavaフォームは、移行することができません。派生元のソースファイルとマージするなどして、継承関係を解除してください。
なお、対象のファイルが派生フォーム機能を使っているかどうかは、以下の手順でソースファイルを確認することでわかります。ご不明な場合は当社技術員にお問い合わせください。
ソースファイル内の以下のコメント部分を確認します。
//@@Form Design Information start
//@@Inherits From クラス名 8桁の数値
上記のクラス名が表の"移行前の基底クラス"以外のものが対象です。
8桁の数値を16進に変換し、3バイト目を確認します。
01になっているものが派生フォームです。
例1://@@Inherits From クラス名 16843267 16843267 (10進) -> 0x01 01 02 03 (16進) -> 派生フォームです
例2://@@Inherits From クラス名 16973315 16973315 (10進) -> 0x01 02 FE 03 (16進) -> 非派生フォームです
移行する一例として、com.fujitsu.apworks.compod.ui.CDFrameクラスを基底クラスにしたJavaフォームを、AWTのjava.awt.Frameクラスを基底クラスにしたJavaフォームに変更します。この手順を以下に示します。
Javaフォームの新規作成
java.awt.Frameクラスを基底クラスにしたJavaフォームを新規作成します。
移行前のJavaフォームと同じプロジェクトに、移行後のJavaフォームを作成します。ワークベンチのメニューバーから[ファイル] > [新規] > [その他]を選択します。[新規]ウィザードで[Java] > [GUI] > [フォーム]を選択します。[Javaフォーム情報]ページで情報を入力します。[Javaフォームの新規作成]ダイアログボックスで[JDK]タブの[フレーム]を選択します。[フレーム]ダイアログボックスでは、[Javaフォーム名]フィールドに移行前のJavaフォームと異なる名前を入力して、[基底クラス]コンボボックスに"java.awt.Frame"を入力します。[作成]ボタンをクリックすると、Javaフォームが新規作成されます。
Beanのコピー
移行前のJavaフォームと移行後のJavaフォームを、グラフィカルエディタで開きます。移行前のJavaフォームに貼り付けられているすべてのBeanを、移行後のJavaフォームにコピーします。
各種の定義をする
以下の定義はコピーすることができないため、移行前のJavaフォームと同じ定義を移行後のJavaフォームに定義します。ただし、あとでアテンション処理のメソッドはコピーするため、アテンション処理定義をする必要はありません。
メニュー定義
排他選択グループ定義
アテンション定義
コンストラクタのコピー
移行前のJavaフォームには、com.fujitsu.apworks.compod.ui.CDApplicationContextクラスを引数にしたコンストラクタがあります。このクラスはフォーム拡張機能の一部のため、移行後のJavaフォームにコピーできません。このため、コンストラクタの処理だけを、移行前のJavaフォームから移行後のJavaフォームにコピーします。
コンストラクタの処理は、Javaエディタでコピーします。
ソースのコピー
コンストラクタ以外のソースを、移行前のJavaフォームから移行後のJavaフォームにコピーします。ただし、変更禁止ソースはコピーしないでください。変更禁止ソースとは、ソース先頭の"// Graphical Editor Form"と"//@@Form Design Information start"、"//@@Form Design Information end"で囲まれた部分のソースです。
ソースは、Javaエディタでコピーします。
メソッド名の変更
移行後のJavaフォームはクラス継承フォームのため、イベント処理とアテンション処理のメソッド名を変更します。
コピーしたソースの中に、以下の形式のメソッドが存在するかを確認します。これがイベント処理とアテンション処理のメソッドです。
public void "Bean名"_"イベントリスナクラス名"_"イベントリスナのメソッド名"("イベントクラス名")
public boolean processAttention_"アテンション名"()
このメソッドを以下の形式のように、メソッド名の最後に$を付けます。
public void "Bean名"_"イベントリスナクラス名"_"イベントリスナのメソッド名"$("イベントクラス名")
public boolean processAttention_"アテンション名"$()
Javaフォームを保存すると、Beanとイベント処理のメソッドや、アテンションとアテンション処理のメソッドを関連付けるコードが生成されます。
Javaフォーム名の変更
移行後のJavaフォーム名を移行前のJavaフォームと同じものにします。
移行前のJavaフォームを削除するか、移行後のJavaフォームを別のプロジェクトにコピーします。移行後のJavaフォームをグラフィカルエディタで開きます。ワークベンチのメニューバーから[ファイル] > [別名保存]を選択して、Javaフォームを別名で保存します。別名にする前のJavaフォームは削除してください。