Wie erzwingen Sie eine java swt-Programm "bewegt sich selbst in den Vordergrund"?

Derzeit mit swt, ich manchmal ein Programm soll beliebig zum Vorschein kommen (wie ein Wecker könnte).

In der Regel die folgenden arbeiten (jruby):

@shell.setMinimized(false)
@shell.forceActive

Dieser bringt die Schale auf der Vorderseite, wenn es minimiert wurde.

Erstellen Sie eine neue shell zu jeder Zeit bringt auch die (neue shell) auf der Vorderseite.

So weit So gut, jedoch, wenn die Schale nicht minimiert, der obige code blinkt (blinkt) das app-icon in der Taskleiste. Naja, eigentlich das erste mal, wenn Sie es ausführen, bringt es nach vorne. Nach, dass es nur blinkt in der Taskleiste. Das ist windows. Auf Linux scheint es nur blinkt in der Taskleiste (ubuntu-Standard).

Weiß jemand von einer cross-Plattform-Weg, um die app zu kommen an die front, in der swt?

Es scheint, dass keine Beschwörungsformel forceActive setActive setMinimized(false) setFocus forceFocus und setVisible-Methode dies erreicht werden kann-Sache.

Ich bin mir ziemlich sicher, es ist möglich (zumindest in windows), als E-Text-Editor funktioniert es. Gut, das ist nicht swt, aber zumindest einige andere apps bekannt gewesen, es zu tun.

Ich mir denke, vielleicht ist das swt bug 192036?

Vielen Dank.

Verwandte:

  • Sieht aus wie die SWT-Fehler, den Sie verbunden mit exakt Ihr problem beschreibt, und es klingt wie Sie nicht in der Lage, es zu beheben.
  • Ich denke, das ist in der Tat das problem für windows-gut fangen. Umgehen, denn jetzt wird zum ersten minimieren, eine Schale, dann unminimize es (oder einige native code [via ffi oder jni] zu forceForeGround es). In Linux bin ich mir nicht ganz sicher, was das problem ist allerdings (nur blinkt in der Taskleiste). Es könnte behoben werden, in neueren Versionen von swt.jar >= 3.5 bugs.eclipse.org/bugs/show_bug.cgi?id=244597
InformationsquelleAutor rogerdpack | 2010-02-23
Schreibe einen Kommentar