ヘビーウェイト版画面制御機能をライトウェイト化するにあたって、API仕様の変更と動作の違いを説明します。
JFCPanelLoaderのAPI仕様の変更
JFCPanelLoaderの修正に伴うAPI仕様の変更を以下に示します。
旧JFCPanelLoader | 新JFCPanelLoader | 概要 |
---|---|---|
JFCPanelLoader(JFCCardPanel) | JFCPanelLoader(JFCCardInterface) | JFCCardPanel、JFLCardPanelおよび、JFCTabbedPanelを一意的に扱えるように、引数をJFCCardPanelからJFCCardInterfaceに変更 |
なし | Container getCardInterface() | JFCCardPanel、JFLCardPanelおよび、JFCTabbedPanelの種類を問わずに取得できるメソッドを追加 |
なし | void exposingPanel() | 画面遷移直後に呼び出されるコールバックメソッド(void exposedPanel())に加えて、画面遷移直前に呼び出されるコールバックメソッドを追加 |
JFCEntryPanelLoaderのAPI仕様の変更
JFCEntryPanelLoaderの修正に伴うAPI仕様の変更を以下に示します。
旧JFCEntryPanelLoader | 新JFCEntryPanelLoader | 概要 |
---|---|---|
JFCEntryPanelLoader(JFCCardPanel, String, String) | JFCEntryPanelLoader(JFCCardInterface, String, String) | JFCCardPanel、JFLCardPanelおよび、JFCTabbedPanelを一意的に扱えるように、引数をJFCCardPanelからJFCCardInterfaceに変更 |
JFCEntryPanelLoader(JFCCardPanel, String, String, int, int) | JFCEntryPanelLoader(JFCCardInterface, String, String, int, int) | JFCCardPanel、JFLCardPanelおよび、JFCTabbedPanelを一意的に扱えるように、引数をJFCCardPanelからJFCCardInterfaceに変更 |
なし | JFCEntryPanelLoader(JFCCardInterface, String, String, int, int, URL[]) | 画面遷移パネルを格納したURLを指定できるコンストラクタを追加 |
なし | void exposingPanel() | 画面遷移直後に呼び出されるコールバックメソッド(void exposedPanel())に加えて、画面遷移直前に呼び出されるコールバックメソッドを追加 |
JFCScrollablePanelとJFLScrollablePanelの仕様の相違点
JFLScollablePanelは、JFCScrollablePanelと同等の機能を持ったライトウェイトコンポーネントです。 JFCScrollablePanelとJFLScrollablePanelの仕様の相違点を、以下に示します。
JFCScrollablePanel | JFLScrollablePanel | 概要 |
---|---|---|
デフォルトで太さ2の凸型の枠線がある | デフォルトで枠線がない | 枠線を設定するメソッドを利用して、枠線を設定可能 |
ScrollPane getViewPort() | Container getViewPort() | 復帰値のオブジェクトがScrollPaneからJFLScrollablePanelに変更 |
JFPanel getViewPanel() | Container getViewPanel() | 復帰値のオブジェクトがJFPanelからJFLightPanelに変更 |
JFCScrollablePanelとJFLScrollablePanelのビューポートの相違点
JFCScollablePanelのgetViewPort()の復帰値はjava.awt.ScrollPaneですが、JFLScrollablePanelのgetViewPort()は自分自身を返します。 getViewPort()で取得したビューポートのAPI仕様の相違点を、以下に示します。
JFCScrollablePanelのビューポート | JFLScrollablePanel | 概要 |
---|---|---|
add()でScrollPaneに対してコンポーネントを貼り付ける | add()でビューパネルに対してコンポーネントを貼り付ける | JFCScrollablePanelのビューポートのadd()は原則として利用できないため、移行による影響はなし |
getComponent(int)は、ビューパネルしか取得できない | getComponent(int)は、ビューパネルのgetComponent(int)を呼ぶ | JFCScrollablePanelのビューポートのgetComponent(0)は、JFCScrollablePanelのgetViewPanel()で代用できる |
getComponents()は、ビューパネルしか取得できない | getComponents()は、ビューパネルのgetComponents()を呼ぶ | JFCScrollablePanelのビューポートのgetComponents()は、JFCScrollablePanelのgetViewPanel()で代用できる |
getComponentCount()は、常に1を返す | getComponentCount()は、ビューパネルのgetComponentCount()を呼ぶ | JFCScrollablePanelのビューポートのgetComponentCount()は常に1を返すため、本メソッドを呼ぶ必要性はなし |
setLayout()は、常に例外をスローする | setLayout()は、ビューパネルのsetLayout()を呼ぶ | JFCScrollablePanelのビューポートのsetLayout()は利用できないため、移行による影響はなし |
通常、JFCScrollablePanelのgetViewPort()でビューポートを取得し、上記メソッドを呼ぶことはないため、移行による影響はありません。
JFCMultiPagePanelとJFLMultiPageScrollablePanelのAPI仕様の相違点
JFLMultiPageScrollablePanelは、JFCMultiPagePanelと同等の機能を持ったライトウェイトコンポーネントです。 JFCMultiPagePanelとJFLMultiPageScrollablePanelのAPI仕様の相違点を以下に示します。
JFCMultiPagePanel | JFLMultiPageScrollablePanel | 概要 |
---|---|---|
void addPanel(Panel) | void addPanel(Container) | ライトウェイト化に伴う引数の変更で、移行による影響はなし |
Panel getCurrentPage() | Container getCurrentPage() | ライトウェイト化に伴う復帰値の変更で、移行時に復帰値をキャストする必要がある場合がある |
Panel getPage(int) | Container getPage(int) | ライトウェイト化に伴う復帰値の変更で、移行時に復帰値をキャストする必要がある場合がある |
int getPageNumber(Panel) | int getPageNumber(Container) | ライトウェイト化に伴う引数の変更で、移行による影響はなし |
JFLMultiPageScrollablePanelには、java.awt.Panelでなくjava.awt.Containerから継承したライトウェイトのページを対象とするため、引数が変更になりますが、ページをライトウェイト化することで、移行による影響はありません。