2010-12-14 3 views
0

Wir verwenden LTSP mit Thin-Clients. Wir benutzen es, um eine Java-Swing-Anwendung zu starten. Die Benutzer sollten nichts anderes machen können, also verwenden wir statt einer Gnome-Session ein Shell-Skript, um unsere Anwendung zu starten.Einstellen des Anwendungsfokus auf ein Java-Programm in Ubuntu/LTSP

Fast alles funktioniert perfekt, aber eins: Wenn der Thin-Client startet, startet auch die Anwendung, erhält aber nicht den Fokus. Wir müssen einmal mit der Maus innerhalb der Anwendung klicken, was nicht so gut ist, weil die Anwendung so entworfen wurde, dass sie ohne Maus verwendet werden kann.

Ich habe nichts Nützliches gefunden, ein toFront() auf meinem Mainframe war nicht erfolgreich.

Hat jemand bessere Vorschläge ??

Antwort

1

Sie können die Methode java.awt.Window#setAlwaysOnTop(boolean) verwenden, um den Fokus zu erfassen und nach der ersten Benutzerinteraktion die alwayOnTop-Eigenschaft zurückzusetzen.

0

Sie könnten versuchen, requestFocus auf Ihrem JFrame so schnell zu nennen, wie sie sichtbar wird:

JFrame frame = new JFrame(); 

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

frame.setVisible(true); 
Verwandte Themen