使用Java通过ID在X11窗口上绘画

问题描述 投票:0回答:1

我的目标是使用 Java 库在 X11 窗口上绘画。问题是我想在一个“已经存在”并且我知道它的窗口 ID 的窗口上执行此操作。我已经使用 C 和 Rust 完成了此操作,但现在想使用 Java。 我可以在 AWT 中找到它创建窗口并获取窗口 ID 的位置:

https://github.com/openjdk/client/blob/master/src/java.desktop/unix/classes/sun/awt/X11/XBaseWindow.java#L380

我相信在这里“注入”ID会对实现目标大有帮助。

我应该如何改变这种行为?我尝试过制作 类来扩展相关的 AWT 类,但遇到了我的代码不在正确的包中的问题。 [1]

我尝试过反射,但被 XFramePeer 对象卡住,无法访问其超类的任何字段/方法。 [2]

是的,我知道这可能是徒劳的。

代码示例: 1:在 Java 中 -

https://github.com/robbieh/AWTForeignXWindow

2:在 Clojure 中 - https://gist.github.com/robbieh/c4662690abff19fc1cca12decd9b486e

java clojure awt x11
1个回答
0
投票

https://github.com/robbieh/clj-xscreensaver-basic-demo

© www.soinside.com 2019 - 2024. All rights reserved.