Merkwürdiger Fehler mit JFrame im Vollbild

RalleYTN

Bekanntes Mitglied
Hey Loits!
Ich habe da so ein Problem, wobei mir Google nicht wirklich helfen möchte.
Ich setze mit der GraphicsDevice Klasse ein JFrame in den Vollbildmodus und danach den DisplayMode. Hatte bisher auch alles super funktioniert. Allerdings geht es jetzt nurnoch wenn ich einen DisplayMode mit der Größe meines Desktops nehme. Wenn ich einen von den anderen vorhandenen DisplayModes(GraphicsDevice#getDisplayModes()) verwende, dann macht er das Fenster ungefähr auf 4/5 der Größe des DisplayModes und klatscht das dann oben links in die Ecke. Ist jedoch jetzt nicht so gut für Spiele.
Hatte schonmal jemand das Problem? Gibt es einen Workarround?
Der Code für das ganze ist wirklich der generische Code den man überall auf Google findet.
 
Hallo,
du musst Dir einfach nur die aktuelle Desktopauflösung holen mit ge.getDefaultScreenDevice(), dann wendest du diese Auflösung auf dein JFrame an und das ist wichtig danach setzt du den gewünschten displayMode z.B. new DisplayMode(800,600,32,60) und wendest den dann auf dein Graphicsdevice-Object an. Aber wohl gemerkt nach der Anwendung auf das JFrame und natürlich vor setVisible(), dann geht's.

Hier ein Beispiel:

Java:
...
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice gd = ge.getDefaultScreenDevice();
       
        frame.setUndecorated(true);
        gd.setFullScreenWindow(frame);
        mode = new DisplayMode(800,600,32,60);
        gd.setDisplayMode(mode);
...
frame.setVisible(true);
 
Java:
...
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice gd = ge.getDefaultScreenDevice();
      
        frame.setUndecorated(true);
        gd.setFullScreenWindow(frame);
        mode = new DisplayMode(800,600,32,60);
        gd.setDisplayMode(mode);
...
frame.setVisible(true);
Das funktioniert! 🙂
 

Zurück
Oben