Javaでスクリーンセーバーを書いています。これは主に Windows 用ですが、実用的なものと同じくらい移植性があることを好みます。
http://support.microsoft.com/kb/182383によると、スクリーンセーバーがコマンド ライン引数/p HWND
で呼び出されると、スクリーンセーバーは「ウィンドウの子としてスクリーン セーバーをプレビュー」する必要があります。おそらく、これはスクリーンセーバー設定ダイアログでスクリーンセーバーが小さなプレビューを表示する方法です。
では、Java では、他の誰かに属するウィンドウの子である JFrame または JComponent をどのように作成するのでしょうか? JPanel に HWND (ウィンドウ ハンドル) を埋め込むを見てきましたが、 これは一種の逆の質問です。開発者は親ウィンドウを制御し、子ウィンドウを埋め込みたいと考えています。私の場合、「私のもの」ではない親に埋め込みたい子コンポーネントを制御します。JNAを使用してそれを行うことはできますか?
Java コードに加えて C コードを保守する必要はありません。(したがって、JNI は優先されません。) JDIC がこの種のニーズを満たすはずだったことは理解していますが、JDIC は本質的に死んでいると読んだことがあります。
私はWindows 7、FWIWを実行しています。