Schwierigkeiten mit Fullscreen API

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hallo,
ich versuche gerade gemäß dem Sun Tutorial über den Fullscreen Mode einen Test zu schreiben. Soweit ich sehe passiert in meinem Code eig. das gleiche wie in Sun's Bsp, allerdings funktioniert es nicht. Sun's Bsp dahingegen funktioniert. Ich sehe aber den Fehler nicht...

Das Bsp das ich adaptiere ist dieses.

Bei meinem Code swicht er in den Fullscreen Mode, aber der Bildschirm bleibt schwarz bzw. dunkelgrau. Außerdem passiert es manchmal dass ich ihn gar nicht mehr verlassen kann. Weder mit ESCAPE, obwohl ich am Fenster nen KeyListener habe, noch mit ALT+F4 oder Affengriff. Ich muss dann rebooten...
Also Vorsicht falls ihr mein Bsp starten wollt!

Hier nun mein Code:

Java:
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;

public class Main {

	public static void main(String[] args) {

		GraphicsDevice monitor = GraphicsEnvironment
				.getLocalGraphicsEnvironment().getDefaultScreenDevice();
		MyWindow window = new MyWindow(monitor);

		try {
			monitor.setFullScreenWindow(window);
			monitor.setDisplayMode(new DisplayMode(1024, 768, 32,
					DisplayMode.REFRESH_RATE_UNKNOWN));
			window.createBufferStrategy(2);
			new Game(window).start();
			
		} catch (IllegalArgumentException e) {
			System.out.println("Display mode not supported");
			System.exit(-1);
		} catch (UnsupportedOperationException e) {
			System.out.println("Display mode cannot be changed");
			System.exit(-1);
		}

		finally {
			monitor.setFullScreenWindow(null);
		}
	}

}

Java:
import java.awt.Frame;
import java.awt.GraphicsDevice;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class MyWindow extends Frame {

	public MyWindow(final GraphicsDevice monitor) {
		super(monitor.getDefaultConfiguration());
		setUndecorated(true);
		setResizable(false);
		setIgnoreRepaint(true);


		addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
					monitor.setFullScreenWindow(null);
					System.exit(0);
				}
			}
		});
	}
}

Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Window;
import java.awt.image.BufferStrategy;
import java.util.Random;

public class Game extends Thread {

	private Window window;

	public Game(Window window) {
		this.window = window;
	}

	@Override
	public void run() {
		while (true) {
			BufferStrategy bufferStrategy = window.getBufferStrategy();
			for (int i = 0; i < 2; i++) { // 2 buffers
				Graphics g = bufferStrategy.getDrawGraphics();
				if (!bufferStrategy.contentsLost()) {
					Random r = new Random();
					g.setColor(new Color(r.nextInt(255), r.nextInt(255), r
							.nextInt(255)));
					g.fillRect(0, 0, window.getWidth(), window.getHeight());
					bufferStrategy.show();
					g.dispose();
				}

				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
				}
			}

		}
	}
}

Was mach ich falsch? Danke!
 
S

Spacerat

Gast
Kann mich dunkel dran erinnern, das ich das Problem auch schon mal hatte. Woran es genau lag weis ich nicht. Vllt. verliert das Fenster durch [c]setIgnoreRepaint(true)[/c] den Focus, was zur Folge hat, dass der KeyListener nicht mehr reagiert.
 

Ark

Top Contributor
Unter Linux: Kann man wenigstens noch mit Strg+Alt+F1 zu tty1 wechseln, um den Prozess abzuknallen? Ein Arbeitsflächenwechsel sollte aber auch noch funktionieren, denke ich. Und wenn sonst alles nichts hilft: Alt+Druck+K muss einfach funktionieren. :D

Ark
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Erste Schritte Android Tutorial - Schwierigkeiten Java Basics - Anfänger-Themen 15
Nerdinfekt Programmieranfänger, Schwierigkeiten mit der Programmierung Java Basics - Anfänger-Themen 6
S Schwierigkeiten beim Aufrücken von Arrays Java Basics - Anfänger-Themen 10
Azazel (Anfängerhilfe) awt.Graphics Schwierigkeiten Java Basics - Anfänger-Themen 6
C Hilfe - Kleines Programm macht mir Schwierigkeiten Java Basics - Anfänger-Themen 2
T OOP Schwierigkeiten mit OOP Java Basics - Anfänger-Themen 2
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
I Schwierigkeiten bei Ausgabe von KreisObjekten in Array Java Basics - Anfänger-Themen 4
D Schwierigkeiten bei Stein.Schere.Papier-Aufgabe Java Basics - Anfänger-Themen 9
N JDK installieren kompilier schwierigkeiten Java Basics - Anfänger-Themen 6
S grundlegende schwierigkeiten Java Basics - Anfänger-Themen 11
P Screenshot eines Fullscreen-Fensters mit Robot Java Basics - Anfänger-Themen 3
C FullScreen? Java Basics - Anfänger-Themen 8
E Titelleiste nur bei fullscreen ausblenden Java Basics - Anfänger-Themen 5
F Problem mit Fullscreen-Fenster Java Basics - Anfänger-Themen 4
M Dialog im undecorated Fullscreen Java Basics - Anfänger-Themen 2
M Fullscreen Mode mit Swing Mitteln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben