Fullscreen auf Sekundärmonitor

sMau90

Aktives Mitglied
Hi,
Ich habe eine Anwendung die aus zwei Fenstern besteht. Das erste ist ein Kontroll Fenster das zweite ein "Präsentationsfenster". Auf klick im Kontrollfenster soll das Präsentationsfenster nun in den Fullscreenmodus wechseln, was auch gut funktioniert, allerdings immer nur auf dem primär Monitor. Ich hätte gerne, dass das Fenster sich im Fullscreenmodus auf dem sekundären Bildschirm öffnet.

Ich hab folgende Methode:

Java:
public void setFullscreen() {
		
		GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(frame);

	}

Kann ich nich irgendwie anstatt "getDefaultScreenDevice()" dem an der Stelle sagen das er das zweite nehmen soll?

Danke schonmal für die Hilfe.

Gruß,
sMau
 

KrokoDiehl

Top Contributor
Ohne damit nun jemals gearbeitet zu haben, aber das GraphicsEnvironment hat auch eine Methode
Code:
getScreenDevices()
welche dir ein Array zurückliefert. Klingt zumindest so, als könne man damit deinem Wunsch nachkommen :)
 

sMau90

Aktives Mitglied
Java:
 		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment()		
		GraphicsDevice [] screens = ge.getScreenDevices();		
		ge.screens[1].setFullScreenWindow(frame);

Sowas hab ich auch schon probiert. Aber das klappt auch nich. Mach ich da vielleicht was falsch? Eclipse sagt mir "screens cannot be resolved or is not a field". Hat wahrscheinlich was damit zu tun das die Klasse abstract is oder lieg ich da falsch?

Jemand ne Idee?
 
Zuletzt bearbeitet:

sMau90

Aktives Mitglied
Ah das hilft schonmal. Wenn ich das richtig verstehe müsste ja so dann funktionieren.

Java:
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();		
		GraphicsDevice [] screens = ge.getScreenDevices();		
		screens[1].setFullScreenWindow(frame);

Allerdings is der Fullscreen dann immer noch aufm primären Monitor, auch mit screens[0]. Was mach ich jetz falsch? Bei screens[2] bekomm ich ne Exception, also scheint er schon irgendwas auszuwählen.
 
Zuletzt bearbeitet:

Illuvatar

Top Contributor
Bei mir funktioniert:
Java:
import java.awt.*;
import java.awt.event.*;

public class Test {
  public static void main(String[] args) {
    Frame f = new Frame("Test");
    f.setUndecorated(true);
    f.setBackground(Color.BLACK);
    f.addKeyListener(new KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
          System.exit(0);
        }
      }
    });
    
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice [] screens = ge.getScreenDevices();
    screens[0].setFullScreenWindow(f);
  }
}

und mit screens[0] bzw [1] erscheint der Frame auf dem jeweils anderen Bildschirm (allerdings ist screens[1] seltsamerweise der Hauptbildschirm...)
Funktioniert denn dieser Code bei dir?
 
T

Tomate_Salat

Gast
habs mal getestet, bei mir ist:
0=primär
1=sekundär
2=terzier [Edit]hier muss natürlich 2 und nicht 3 stehen ;-)[/Edit]

und wird auch richtig dargestellt.

MFG

Tomate_Salat
 
Zuletzt bearbeitet von einem Moderator:

sMau90

Aktives Mitglied
Also bei mir unter Windows XP klappt es nich, aber da kann ich die Bildschirme aber auch nur als einen großen Desktop nutzen.
Unter Windows 7 startet er das Vollbild immer auf dem primären Bildschirm.
Was benutzt du denn für ein Betriebssystem?
 

sMau90

Aktives Mitglied
Ok und obwohl der Desktop erweitert ist wird der fullscreen nur auf einem Bildschirm angezeigt?
Ich werd jetz nochmal mit erweiterten Desktop unter Win 7 testen.
Jedenfalls schonmal vielen Dank euch beiden.
 

Ähnliche Java Themen


Oben