我的目标是使用 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我应该如何改变这种行为?我尝试过制作 类来扩展相关的 AWT 类,但遇到了我的代码不在正确的包中的问题。 [1]
我尝试过反射,但被 XFramePeer 对象卡住,无法访问其超类的任何字段/方法。 [2]
是的,我知道这可能是徒劳的。
代码示例: 1:在 Java 中 -
https://github.com/robbieh/AWTForeignXWindow2:在 Clojure 中 - https://gist.github.com/robbieh/c4662690abff19fc1cca12decd9b486e