2010-01-17 7 views

Antwort

4

Andere Beantworter scheinen anzunehmen, dass "Vollbildgrafik in Java" notwendigerweise "eine funktionierende Implementierung von AWT" bedeutet. Dies ist natürlich nicht unbedingt richtig, da es durchaus möglich ist (einige würden es sogar als wünschenswert bezeichnen), Java ohne AWT zu verwenden.

Cairo ist eine 2D-Grafik-Rendering-Bibliothek, die von Java verwendet werden kann und auch ohne X11 verwendet werden kann. Es sieht auf den ersten Blick so aus, als ob es möglich wäre, es für dieses Szenario zu konfigurieren. Sie müssen es für die Verwendung des OpenGL-Renderings konfigurieren und eine geeignete OpenGL-Implementierung bereitstellen, die nicht von X11 stammt (z. B. MesaGL mit dem Gerätetreiber fbdev).

SDLJava ist ein Java-Port der beliebten C SDL-Spielentwicklungsbibliothek. Dies sollte auch in der Lage sein zu tun, was Sie verlangen, obwohl es seit 2005 nicht aktualisiert worden zu sein scheint, also wenn Sie irgendwelche Probleme mit ihm haben, kann Unterstützung nicht kommen.

Alternativ können Sie den Framebuffer auch mit relativ einfachem C-Code öffnen und konfigurieren. Verwenden Sie dann JNI, um den speicherprogrammierten Framebuffer als ByteBuffer im direkten Modus zurückzugeben, sodass Sie direkt darauf zeichnen können.

5

Nun "Vollbild-Grafik" ist ein bisschen vage.

Wie auch immer, anscheinend gibt es einen fortlaufenden Aufwand, um von Java aus auf den Framebuffer zuzugreifen: Framebuffer Toolkit.

Das Ziel dieses Projektes ist es, einen Körper des Codes zu erzeugen, die eine leichte Framebuffer-basierte Peer-Implementierung für AWT und Swing ist. Das Ziel dieses Codes besteht darin, die Abhängigkeit von X oder anderen Grafikschichten zu entfernen, so dass Grafiken zu einem Framebuffer (z. B. einem Rohpuffer, VNC usw.) an einen Framebuffer ( ) umgeleitet werden können. Dieses Beispiel Implementierung wird reine Java-Lösungen bevorzugen, mit öffentlichen Erweiterungspunkten verfügbar, um native Ressourcen nach Bedarf einzugeben.

Siehe Project proposal: fbtoolkit.

1

Um wirklich etwas grafisch auf dem Bildschirm anzuzeigen, ja. Bud gibt es eine kopflose Version der JRE, nur um es zu laufen. Sie werden keine grafische Ausgabe sehen, aber sie wird ausgeführt. Alternativ können Sie sich auch remote anmelden und X-Forwarding verwenden, um den Java-Code auf dem Server auszuführen, während der Client die Anzeige von Grafiken übernimmt.

+0

Das Ziel des OP war, Grafiken zu verwenden, nicht die kopflose Version der JRE zu verwenden. –

1

Auf einem eingebetteten Gerät, wie z. B. einem Raspberry Pi, wenn Sie nicht möchten, mit dem Standard-Java AWT + Swing voll durch X11 gehen, dann scheint dieses https://github.com/ttww/JavaFrameBuffer Projekt direkt in den Bildspeicher zu schreiben interessant.

Eine Alternative kann z.B. SWT auf GTK oder Qt Jambi, um in den Rahmenpuffer zu schreiben (sowohl GTK als auch QT können direkt einen FB ohne X11 verwenden).