我们正在Windows中构建JavaFX应用程序。
我尝试使用适用于Native.getComponentPointer()
的JNA java.awt.panel
方法,但我无法通过javafx.scene.layout.Pane
<找出一个好方法/ p>
有没有人知道有什么方法可以为一个窗格获取hWnd?
答案 0 :(得分:2)
不幸的是,我不认为JavaFX可以实现这一点。我能看到的唯一具有本地同伴的是舞台。您可以使用ui分析工具(例如WinSpy)或&#34; inspect.exe&#34;来自行验证。或&#34; visualuiaverifynative.exe&#34;来自Windows SDK。
来自Mixing Heavyweight and Lightweight Components by Oracle:
Java编程语言中有两种图形组件:重量级和轻量级。重量级组件与其自己的本机屏幕资源(通常称为对等)相关联。 java.awt包中的组件(如Button和Label)是重量级组件。
[...]
轻量级组件没有自己的原生屏幕资源,因此它更轻。&#34;轻量级组件依赖于包含层次结构中的祖先的屏幕资源,可能是底层的Frame对象。 javax.swing包中的组件(如JButton和JLabel)是轻量级组件。
在这种情况下,JavaFX就像Swing;一个轻量级的工具包,其中各种ui组件都是用Java编写的,没有本地对等。
答案 1 :(得分:1)