我在“ openSUSE 11.4(x86_64)”上以全屏模式运行Java应用程序时遇到问题。我正在使用Java 1.6.0_26-b03。
我尝试运行两个全屏应用程序示例:
在这两种情况下,我都可以在应用程序上看到一个Linux任务栏。它必须与系统设置/配置有关吗?
您 应该 可以使用进入“真正的全屏显示”状态GraphicsDevice.setFullScreenWindow (window)
。但是,由于最流行的Java运行时中的错误,在运行1.6 = Java
6系列中某些“损坏”版本的系统上,这可能不起作用。我尚未对此进行彻底的测试,因此可能是该补丁尚未传播到普通民众。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7057287
背景/理论
好的,所以这里需要太多信息,而又没有足够的帮助……这 就是为什么 这种方法无法正常工作的 原因 ……
没有Linux桌面
PC型计算机上的基于Linux的操作系统以及其他Unices(MacOSX除外)通常使用X Window System(aka
X11)。在X下,您有一个X服务器(通常有点像“视频驱动程序”)和 客户端( 通常不是从同一台计算机)连接到它(环回)。窗口的布局和放置由称为“窗口管理器” 的 特殊 客户端程序控制。它负责装饰窗户(例如,绘制标题栏或调整大小的手柄)并对其进行定位。
您的程序将是X客户端。它可以 请求 (但不 要求) 在屏幕上某个位置或某个尺寸的放置。各种窗口管理器更倾向于(或更少)为您提供所需的内容。
除此之外,大多数台式机都可以很好地播放 (有时)
现在,到目前为止,大多数Linux桌面都使用Gnome桌面,在K桌面上排名第二,而其他一些桌面的使用也相当广泛。“好”的是,这两个桌面环境(以及其他一些桌面环境,例如用于低端PC的XFCE)都符合
FreeDesktop.org窗口管理器提示 标准。(超级简化:)通常,屏幕的一个或多个边缘上会有面板。通常,顶部只有一个,但是有 很多
变化。这些面板区域不被视为“屏幕的一部分”,因此窗口管理器会告诉您的应用程序“不,那是在允许您播放的区域之外;这个屏幕不是1920×1080,只有1890×1080。”
当然,这可能与您编写应用程序时所预期的完全不同,并且您可能在我的上网本上,其物理屏幕为800×480,却只有780×480。对于99%的应用程序来说,这很棒。Windows不会妨碍面板,因此您始终可以通过面板访问关键控件,例如单击“静音”或切换到其他程序等。
这些“提示”使您可以请求对顶级窗口进行特殊处理。例如,您可以要求您不提供标题栏,或者减少使用“调色板”类型的标题栏。您可以在窗口列表或任务栏或活动概述或其他任何可用于显示活动窗口的界面上请求跳过;或者,你可以要求去
真正的 全屏幕,并推动一切的出路,甚至面板。规范在这里:http :
//standards.freedesktop.org/wm-spec/wm-spec-
latest.html
失败:
基本上,窗口管理器提示规范未正确遵循Sun / Oracle(或Red Hat,后者抄袭了Sun /
Oracle,或者可能复制了IBM),因为它们可能做了同样的事情,但是我看不到有人抱怨它们)…
虽然,我也看到一些抱怨来回它是否是一个错误(具体)与K桌面环境的窗口管理器(KWin的),因为 显然 这个错误只以K显示出来,而 不是
在Gnome中,XFCE和朋友。
全面工作
除了修补Java运行时(和/或客户的)外,唯一真正的解决办法是使用特定于平台的Java库(也许使用反射…eww…来获取底层的AWT对象)并自行设置适当的窗口提示。
。
是的,那太恶心了……
问题内容: 我一直在尝试并且无法在OSX系统的主显示屏上使用Java全屏模式。无论我尝试了什么,似乎都无法摆脱显示屏顶部的“苹果”菜单栏。我真的需要在整个屏幕上绘画。谁能告诉我如何摆脱菜单? 我已经附上了一个显示问题的示例类-在我的系统上,菜单仍然可见,我希望看到一个完全空白的屏幕。 问题答案: 我认为您的问题在这里: 块总是执行,所以这里发生的是,您的窗口在短时间内(如果有的话)变为全屏,然后立
在Groovy中,我重写了这样一个任务: 如何使用Kotlin dsl?我知道我可以创建这样的任务: 但是我找不到等价的方法来声明它为overwrite,这导致了一个错误
我想使用xvfb打开浏览器headless,以便使用jmeter进行客户端性能测试。我使用selenium [Junit sampler]来运行测试。如何在jmeter中覆盖显示变量,使其不打开浏览器??
问题内容: 我想要一个目录,但是我不想覆盖任何现有文件,即使它们比复制的文件还旧。我想做到完全非交互式,因为这将是Crontab Bash脚本的一部分。有任何想法吗? 问题答案: 从手册页中获取: 例:
问题内容: 我有一个愚蠢的困惑,当我们重写父类方法时,此派生的重写方法是否仍保留父类方法的代码,或者这是我们可以定义的新方法? 问题答案: 阅读本文以使概念更清晰。http://docs.oracle.com/javase/tutorial/java/IandI/override.html 通常,当我们想要扩展超类的方法或想要更改完整的逻辑时,我们就会这样做。 例如: 超类具有使用冒泡排序的排序方
问题内容: 我已经尝试解决了几个小时,但是找不到有效的答案。 为了完整起见,我在下面发布了整个代码。如果不重写toString方法,则将获得对象哈希码的表示形式。 我尝试使用以下内容: 但是,这似乎无济于事,因为我仍然获得了对哈希码的引用。我知道这是因为我没有正确覆盖toString方法;包含@Override批注时出现错误,但据我所知。 我查看了其他一些回答,这些回答说,在列表/集合的情况下,重