2013-05-14 6 views
2

J'ai une application Java qui affiche deux JFrames sur deux moniteurs distincts. Sur Ubuntu et Windows, l'application s'affiche très bien. Je peux configurer les JFrames à afficher sur les moniteurs avec l'ID d'écran spécifié. Cependant, sur openSUSE, il reste affiché sur le même moniteur, quel que soit le réglage. Qu'est-ce qui est différent d'openSUSE?OpenSuse 12.3 + Java double affichage

Voici une partie du code que j'utilise pour déterminer sur quel moniteur JFrame doit afficher:


    GraphicsDevice[] screens = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); 
    for (int s = 0; s < screens.length; s++) { 
     GraphicsConfiguration configuration = null; 
     for (int c = 0; c < screens[s].getConfigurations().length; c++) { 
      if (AWTUtilities.isTranslucencyCapable(screens[s].getConfigurations()[c])) { 
       configuration = screens[s].getConfigurations()[c]; 
       break; 
      } 
     } 
     if (configuration == null) { 
      configuration = screens[s].getDefaultConfiguration(); 
     } 
     if (screens[s].getIDstring().equals[frame1_id]) { 
      frame1 = new JFrame("Frame 1", configuration); 
      frame1.setResizable(false); 
      frame1.setUndecorated(true); 
      frame1.setBounds(configuration.getBounds()); 
      frame1.setVisible(true); 
     } 
     if (screens[s].getIDstring().equals[frame2_id]) { 
      frame2 = new JFrame("Frame 2", configuration); 
      frame2.setResizable(false); 
      frame2.setUndecorated(true); 
      frame2.setBounds(configuration.getBounds()); 
      frame2.setVisible(true); 
     } 
    } 
+1

Avez-vous essayé un autre gestionnaire de fenêtres? – trashgod

+1

Cela a fonctionné pour moi, merci beaucoup. Veuillez ajouter votre commentaire en guise de réponse pour que je puisse voter. – bouncer

+0

Heureux que cela a aidé. Si vous avez des détails sur ce qui fonctionne le mieux, je vais les incorporer dans la réponse. Vous pouvez également [répondre à votre propre question] (http://meta.stackexchange.com/q/17463/163188). – trashgod

Répondre

1

La mise en œuvre de OpenSuse GraphicsEnvironment peut dépendre du choix d'un gestionnaire de fenêtre particulière. Vous devrez expérimenter pour trouver le meilleur.

Addenda: @bouncer commentaires, "J'ai utilisé le gestionnaire de fenêtres Gnome, ce qui a causé le problème Après le passage à KDE, le problème a été résolu." Voir aussi 10 things to do after installing openSUSE 12.3.

+1

J'ai utilisé le gestionnaire de fenêtres Gnome, qui a causé le problème. Après le passage à KDE, le problème a été résolu. – bouncer