【发布时间】:2014-09-20 11:15:15
【问题描述】:
我使用Java Swing 和Xuggler 5.4 制作了一个屏幕录像机。我已经在 Windows 8 64 位中开发了它。它在 Windows 上运行良好。但是在 Linux 环境的客户端,没有任何工作。我已经彻底搜索但没有得到任何解决方案。我已经检查了这个 thread ,但它对我不起作用。
然后我尝试在 Linux 中创建简单的透明窗口,但它也无法正常工作。我无法单击可调整大小的面板。我对两者都使用了相同的JRE version (1.7)。就 Swing 而言,我是否错过了对 Java 的跨平台支持的理解?
请给我一些建议...
【问题讨论】:
-
" 就 Swing 而言,我是否错过了对 Java 的跨平台支持的理解?" 没有,但
Xuggler是一个原生库的包装器,因此会引发一个题。 Swing/Java 使用的许多功能依赖于底层平台为其提供支持的能力。如果操作系统不支持,或者没有相关概念,那么 Java 根本无法支持该功能。例如,GraphicsDevice有isWindowTranslucencySupported,它采用TRANSLUCENT或PERPIXEL_TRANSLUCENT来确定对透明窗口功能的支持 -
但是我刚刚制作了一个测试代码,使框架透明,它适用于 Windows 但不适用于 Linux..我可以在 windows 中单击框架,但在 Linux 中则不能
-
但归根结底,我们受制于底层操作系统的能力。您的窗口是否附加了任何鼠标侦听器(或附加到框架内的任何组件)?
-
回顾 Java 5,例如,API 非常平淡,非常基本的功能可以提供给几乎所有平台。 Jav 6 引入了
SystemTray的概念,但并非所有平台都有“系统托盘”的概念。它还引入了透明/半透明/异形窗口,这又是一个并非适用于所有平台的概念,所以突然间我们有了这个抽象层的灰色,其中一些功能“可能”工作,“一些”时间。Desktop是另一个我们“喜欢”但可能无法在所有平台上使用的功能示例...... -
您看,一个想法可能是启动“选择”部分,这将允许您定义要捕获的区域,但是一旦定义了选择,就隐藏窗口。 .不确定这是否是一个可行的想法,但这是一个想法......
标签: java linux swing awt xuggler