Rworks ホーム | お問い合わせ

Java アプリケーションを起動するとウインドウの枠が消える

ASTEC-X のマルチウインドウモードで Java のアプリケーションを起動すると、 ASTEC-X で表示している X アプリケーションのウインドウ枠が消えてしまう場合があります。

【Javaアプリケーション起動前】
画面例
【ウィンドウ枠がなくなった状態】
画面例

回避方法

この現象を回避するためには、 ASTEC-X のコントロールパネルの [マルチウィンドウモード] パネルにある [内蔵ウインドウマネージャのみを使用する] を有効にしてください。

このオプションを有効にすると、 ASTEC-X は UNIX ホスト側のウインドウマネージャに ウインドウの制御を渡さなくなるため、 ウィンドウ枠が消える現象も起きなくなります。

【先頭に戻る】

現象の原因

ウィンドウシステムにおいて、 ウィンドウの操作や制御の管理を司る部分の機能を ウィンドウマネージャと呼びます。 X Window System (以下 "X") では、 ウィンドウマネージャは独立したプログラムとして実現可能で、 複数のウィンドウマネージャを切り替えて使うこともできます。 X のウィンドウマネージャには例えば twm や dtwm などがあります。

ASTEC-X をマルチウインドウモードで起動した場合、 まず ASTEC-X 自身がウィンドウマネージャとなります (Windows のウィンドウ枠が X の各ウィンドウにつきます)。 その後 UNIX ホスト側でウインドウマネージャが起動すると、 そちらにウインドウの制御を委ねるようになっています。

Java アプリケーションの中には、 自分自身がウインドウマネージャであるかのように振る舞うことで、 ウインドウマネージャがすでに起動しているかどうかの確認を行うものがあります。
Java アプリケーションがウインドウマネージャであるかのような振る舞いをすると、 ASTEC-X は UNIX ホストでウインドウマネージャが動作していると誤認し、 ウインドウの制御を手放してしまいます。 この結果としてウインドウの枠が消えてしまいます。

【先頭に戻る】
Copyright © 2000-2022 Rworks, Inc. All rights reserved. / 個人情報保護方針 / 著作権・リンクについて