代码之家  ›  专栏  ›  技术社区  ›  Ande Turner

Java:Linux的图形

  •  5
  • Ande Turner  · 技术社区  · 16 年前

    为了使Java显示全屏图形,X-Windows必须安装在Linux框上吗?

    4 回复  |  直到 10 年前
        1
  •  4
  •   Jules    13 年前

    其他回答者似乎认为“Java中的全屏图形”必然意味着“AWT的工作实现”。当然,这不一定是真的,因为没有AWT使用Java是完全可能的(甚至有人说是可取的)。

    Cairo 是一个可以从Java中使用的二维图形渲染库,也可以在没有X11的情况下使用。乍一看,似乎可以为这个场景配置它。您需要将其配置为使用OpenGL呈现,并提供合适的非x11 OpenGL实现(例如,带有“fbdev”设备驱动程序的mesagl)。

    SDLJava 是流行的C SDL游戏开发库的Java端口。这也应该能够满足您的要求,尽管它自2005年以来似乎没有更新过,所以如果您在IT方面有任何问题,可能不会提供支持。

    另外,您可以使用一些相当简单的C代码来打开和配置帧缓冲区,然后使用JNI将内存映射的帧缓冲区返回为直接模式bytebuffer,这样您就可以直接绘制它了。

        2
  •  5
  •   Gregory Pakosz    16 年前

    嗯,“全屏图形”有点模糊。

    不管怎样,显然有一个正在进行的工作,从Java访问帧缓冲区: Framebuffer Toolkit .

    这个项目的目标是生成一个代码体,它是 针对awt和swing的基于轻量级帧缓冲区的对等实现。 此代码的目标是删除对x或 其他图形层,以便将图形重定向到 帧缓冲区(例如原始缓冲区、VNC等)。这个例子 实现将更喜欢纯Java解决方案,与公众 可根据需要输入本机资源的扩展点。

    Project proposal: fbtoolkit .

        3
  •  1
  •   sibidiba    16 年前

    要在屏幕上真正显示图形,是的。Bud有一个用于运行它的JRE无头版本。您将看不到任何图形输出,但它将运行。 或者,您可以远程登录并使用X转发来在服务器上运行Java代码,但让客户端处理显示图形。

        4
  •  1
  •   vorburger    10 年前

    在一个嵌入式设备上,比如Raspberry Pi,如果你不想用标准的Java AWT+Swing进行完全X11,那么 https://github.com/ttww/JavaFrameBuffer 直接写入帧缓冲区的项目似乎很有趣。

    另一种选择是使用GTK上的SWT或Qt Jambi写入帧缓冲区(GTK和Qt都可以直接使用不带x11的FB)。