ページの先頭行へ戻る
Interstage Studio J Business Kit GUIライブラリ ユーザーズガイド
FUJITSU Software

1.2.1 ライトウェイトコンポーネントについて

基本GUIライブラリでは、主要な基本GUIライブラリをライトウェイトコンポーネントとして提供しています。

ライトウェイトコンポーネントを利用する利点は、次のとおりです。

JDKのSwingライブラリもライトウェイトコンポーネントとして提供されています。

ただし、ライトウェイトコンポーネントを配置するコンテナには以下のような特殊な条件が必要です。

ライトウェイトコンポーネントを配置するコンテナには上記の理由のため、ダブルバッファリングを使って描画を行う機能を持つ必要があります。

JBKではダブルバッファリングの機能を持つコンテナとしてJFPanelクラスを提供しています。
主要な基本GUIライブラリを利用する場合は、コンテナとしてJFPanelクラスを利用するか、ダブルバッファリングの機能を持つコンテナを利用する必要があります。

ライトウェイトコンポーネントとヘビーウェイトコンポーネント

ヘビーウェイトコンポーネントは、OSのネイティブGUIコンポーネントを使用します。ヘビーウェイトコンポーネントの描画はOS側で行いますが、ライトウェイトコンポーネントはJavaで描画処理を行います。

ライトウェイトコンポーネント

ヘビーウェイトコンポーネント

OSが実装しているGUIコンポーネントを使用しない

OSが実装しているGUIコンポーネントを使用する

OSリソースを消費しない

OSリソースを消費する

OSの種類に関わらず外観が同じ

OSの種類によって外観が異なる

java.awt.ComponentのisLightweight()の復帰値:true

java.awt.ComponentのisLightweight()の復帰値:false

透明な領域を持つことができる

透明な領域を持つことができない

注意

ライトウェイトコンポーネントとヘビーウェイトコンポーネントを混在させて使用しない

GUIライブラリを利用して画面を作成される場合は、ライトウェイトコンポーネントだけを使用してください。
同じ画面でライトウェイトコンポーネントとヘビーウェイトコンポーネントを組み合わせて使用すると、描画に異常が発生することがあります。

注意

ライトウェイトのコンポーネントまたはコンテナと、ヘビーウェイトのコンポーネントまたはコンテナとが混在している場合、処理性能が劣化する場合があります。

この場合は、Javaの起動オプションに以下を指定してください。

-Dsun.awt.disableMixing=true

※JDK/JRE 7以降、ヘビーウェイトコンポーネントとライトウェイトコンポーネントが混在した画面の表示制限が緩和されました。

しかし、この機能により、今まで混在しても問題なく表示されていた画面に対しても処理性能が劣化する場合があります。

注意

開発元が異なるGUIコンポーネントを組み合わせて使用しない

JBKのGUIコンポーネント(com.fujitsu.jbk.guiパッケージ)、AWTコンポーネント(java.awtパッケージ)および、SwingのGUIコンポーネント(javax.swingパッケージ)を組み合わせて使用するのは推奨されていません。どれかのコンポーネントだけで開発してください。