如何在Java中创建叠加窗口?

如何在Java中创建叠加窗口?,第1张

概述我正在尝试为外国应用程序创建HUD样式显示. 要做到这一点,我需要制作一个透明的覆盖窗口,将其置于顶部 外国申请的窗口.叠加窗口应该允许我放置 小部件并在其上绘制文本.事件应该转发到底层窗口, 如果它们发生在透明区域(否则允许小部件工作 预期). 我在OSX上用Java做这个.我希望使用具有可移植性的纯Java来实现这一点 其他平台,但如果不可能,我会很好的解决方案只允许 我通过Cocoa(Roc 我正在尝试为外国应用程序创建HUD样式显示.

要做到这一点,我需要制作一个透明的覆盖窗口,将其置于顶部
外国申请的窗口.叠加窗口应该允许我放置
小部件并在其上绘制文本.事件应该转发到底层窗口,
如果它们发生在透明区域(否则允许小部件工作
预期).

我在OSX上用Java做这个.我希望使用具有可移植性的纯Java来实现这一点
其他平台,但如果不可能,我会很好的解决方案只允许
我通过Cocoa(rococoa)或Carbon在OSX上做到这一点.

解决方法 实际上,能够自己解决这个问题.似乎比我预期的要容易:

public class Overlay {    public static voID main(String[] args) {        JFrame frame = new JFrame("transparent Window");        frame.setUndecorated(true);        frame.setBackground(new color(0,0));        frame.setAlwaysOntop(true);        // Without this,the window is draggable from any non transparent        // point,including points  insIDe textBoxes.        frame.getRootPane().putClIEntProperty("apple.awt.draggableWindowBackground",false);        frame.getContentPane().setLayout(new java.awt.borderLayout());        frame.getContentPane().add(new JTextFIEld("text fIEld north"),java.awt.borderLayout.norTH);        frame.getContentPane().add(new JTextFIEld("text fIEld south"),java.awt.borderLayout.soUTH);        frame.setVisible(true);        frame.pack();    }}
总结

以上是内存溢出为你收集整理的如何在Java中创建叠加窗口?全部内容,希望文章能够帮你解决如何在Java中创建叠加窗口?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1033064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存