4

JPanel に HWND (ウィンドウ ハンドル) を埋め込もうとしています。

実際、HWND を JFrame に埋め込むことはできますが、埋め込まれたウィンドウは常に他のコンポーネントの上にあり、移動できません。JFrame のすべての子コンポーネントを削除しようとすると、HWND はそこにとどまります。HWND は、JFrame の上にペイントされているようで、子の 1 つとしてではありません。

HWND を JPanel に埋め込むには、jna を介して User32 を使用します。

User32.SetParent(iage.getRenderHwnd(), (int) getGUIHwnd(j));

そして、これを使用して JFrame の HWND を取得します。

j.getPeer() != null ? ((WComponentPeer) j.getPeer()).getHWnd(): 0;

HWND を JPanel に埋め込んだり、他のコンポーネントに追加したりして、UI に配置できるようにする方法はありますか?

ありがとう

4

1 に答える 1

6

JPanel は軽量化されたコンポーネントです (実際のネイティブ ピアはありません)。つまり、(J)Frame のハンドルを既に使用しています。java.awt.Canvas を見てください。

于 2011-01-27T01:09:53.077 に答える