TITLE:JNIでJFrameのHWNDを取得
#navi(../)
RIGHT:Posted by [[aterai]] at 2008-09-04(([[コメント欄>Comments/Swing]]から移動))
*JNIでJFrameのHWNDを取得 [#ibeb10df]
#adsense2

- [http://terai.xrea.jp/data/swing/hwndTest.zip hwndTest.zip(サンプル)]

//#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TUKZTxK0pwI/AAAAAAAAAz4/qohiEl4CJss/s800/JAVA_HOME.png)

**概要 [#d54756f6]
[http://www.telejapan.com/af/master/memo/memo_Java.html JNI Windowsでウインドウハンドラを取得する - Memo of Master]の方法2を参考にして、JNI(Java Native Interface) で JFrame(SunAwtFrame) の HWND(ウィンドウハンドル) を取得します。

**環境 [#q9fd6c07]
- Microsoft Windows XP [Version 5.1.2600]
- JDK 1.6.0_04
- Microsoft Visual Studio .NET 2003\vc7

**解説 [#gcd89e73]
以下のようにコンパイル、実行するとフレームのタイルトバーにHWNDが表示されます。

#code{{
@echo off
SETLOCAL

"%JAVA_HOME%\bin\javac" windowHandler.java
"%JAVA_HOME%\bin\javah" -jni windowHandler

set SDK=C:\Program Files\Microsoft Visual Studio .NET 2003\vc7
"%SDK%\bin\cl.exe" /c -I"%SDK%\include" -I"%SDK%\PlatformSDK\include" -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -IhwndTest.h hwndTest.c

set LIB=%SDK%\lib;%SDK%\PlatformSDK\lib
"%SDK%\bin\link.exe" /DLL hwndTest.obj "%JAVA_HOME%\lib\jawt.lib"

set Path=%Path%;%JAVA_HOME%\jre\bin

"%JAVA_HOME%\bin\java" windowHandler
}}

**参考リンク [#z82fc32a]
- [http://www.telejapan.com/af/master/memo/memo_Java.html JNI Windowsでウインドウハンドラを取得する - Memo of Master]

**コメント [#h2768609]
#comment