2010-12-14 33 views
0

Nous utilisons LTSP avec Thin-Clients. Nous l'utilisons pour exécuter une application Java-Swing. Les utilisateurs ne devraient pas être en mesure de faire autre chose, donc au lieu d'une session Gnome, nous utilisons un script shell pour démarrer notre application.Définition du focus de l'application sur un programme Java sous Ubuntu/LTSP

Presque tout fonctionne parfaitement mais une chose: Lorsque le client léger démarre, l'application démarre aussi mais ne reçoit pas le focus. Nous devons cliquer une fois avec la souris dans l'application, ce qui n'est pas très bien, car l'application est conçue pour être utilisée sans souris.

Je n'ai rien trouvé d'utile, un toFront() sur mon Main Frame n'a pas réussi.

Quelqu'un at-il de meilleures suggestions ??

Répondre

1

Vous pouvez utiliser la méthode java.awt.Window#setAlwaysOnTop(boolean) pour capturer le focus et après la première interaction utilisateur, réinitialiser la propriété alwayOnTop.

0

Vous pouvez essayer d'appeler requestFocus sur votre JFrame dès qu'il devient visible:

JFrame frame = new JFrame(); 

frame.addComponentListener(new ComponentAdapter() { 
     public void componentShown(ComponentEvent e) { 
      ((JFrame) e.getSource()).requestFocus(); 
     } 
    }); 

frame.setVisible(true);