Programm in den Vordergrund bringen

Tharsonius

Bekanntes Mitglied
Hallo zusammen,

nachdem ich nun sicher gestellt habe, dass mein Programm nur noch einmal gestartet wird möchte ich das ganze nun etwas erweitern. Das neu gestartete Programm wird weiterhin abgebrochen, aber ich möchte dann das bereits laufende Programm in den Vordergrund bringen. Vorzugsweise sollte das Programm dann auch noch den Fokus bekommen.

Das laufende Programm über den Programmstart informieren klappt wunderbar. Nur noch das bringen in den Vordergrund fehlt.

Gibt es da irgend eine Möglichkeit Windows (und auch andere Betriebssysteme) zu veranlassen ein Programm in den Vordergrund zu bringen?
 

Tharsonius

Bekanntes Mitglied
Leider passiert außer einem Blinken meines Programms in der Taskleiste nichts.

Das Programm wird weder in den Vordergrund geholt, noch bekommt es den Fokus.

Mit dem Blinken kann ich leben, so wird der Nutzer immerhin darauf aufmerksam und merkt, dass da bereits eine Instanz läuft.
Aber schöner wäre es, wenn diese sich auch in den Vordergrund bringen würde.
 

Jens81

Gesperrter Benutzer
z.B. so kannst du einen bereits geöffneten Dialog in den Vordergrund holen

Java:
for (int i=0; i < Window.getWindows().length; i++) {
	try {
		JDialog dia = (JDialog)Window.getWindows()[i];
		if (dia.isVisible()) {
			if ((Window.getWindows()[i]) instanceof MeinDialogFenster) {
				((MeinDialogFenster)Window.getWindows()[i]).toFront();
			}
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}
 

Guybrush Threepwood

Top Contributor
Es ist so eine Sache: Programme, die sich selbstständig in den Vordergrund mogeln können ziemlich nerven. Ich kann mir vorstellen, dass das in Windows bewusst unterbunden wird. Ein paar Workarounds gibt es hier: Howto bring a Java window to the front? - Stack Overflow

Das könnte funktionieren (ungetestet):
Java:
if(getState()!=Frame.NORMAL) { setState(Frame.NORMAL); }
toFront();
repaint();
 
Zuletzt bearbeitet:

Tharsonius

Bekanntes Mitglied
Es ist mir bewusst, dass das nervt, wenn ein Fenster dauerhaft etwas verdeckt und man das nicht aus dem Weg bekommt.
Sowas will ich auch gar nicht erreichen.

Der Nutzer soll grundlegend machen können was er will, in Bezug auf Größe, minimiert, maximiert etc.
Da ich aber einen doppelten Programmstart unterbinde wirkt das natürlich auf den ersten Blick als würde sich nichts tun.

Daher möchte ich den Nutzer beim erneuten Programmstart darauf aufmerksam machen, dass das Programm bereits läuft. Nur in diesem Augenblick sollte sich das laufende Programm also in den Vordergrund bringen, anstatt dass eine neue Instanz gestartet wird.

if(getState()!=Frame.NORMAL) { setState(Frame.NORMAL); }
toFront();
repaint();
Leider ändert dies auch nichts am Verhalten, es bleibt bei einem Blinken des Programms in der Taskleiste.


Ich hab mir auch mal Deinen Link angesehen, scheint demzufolge wirklich etwas zu sein, was von Windows abhängt, weil XP (was ich hier auch nutze) das Fokus Stehlen per default unterbindet. Auf Vista soll das anders sein...
Ich werde das heute abend mal bei mir daheim probieren, wie sich das alles auf Windows 7 verhält. Linux kann ich nicht testen...

Na ja, alles in allem kann ich auch mit dem Blinken leben. Wichtig ist, dass sich überhaupt irgendwas tut und der Nutzer eine Reaktion bemerkt.

Erst mal vielen Dank.
 

Guybrush Threepwood

Top Contributor
Wenn Du ausschließlich auf Windows arbeitest, dann könnte ein Launcher wie launch4j für Dich interessant sein. Der macht - glaube ich - das, was Du möchtest: Wenn bereits eine Instanz des Programms läuft, dann wird diese nach vorne geholt anstatt ein neues Fenster aufzumachen.
 

KrokoDiehl

Top Contributor
Schonmal probiert ob du nicht nur ein
Code:
toFront()
brauchst sondern auch direkt den Fokus verlangen musst?
Ich meine:
Java:
meinFenster.toFront();
meinFenster.requestFocus();
War so eine spontane Idee.

Ansonsten gibt es vielleicht ein paar Tricksereien mit
Code:
setAlwaysOnTop()
... aber wie gesagt: Trickserei.
 

Tharsonius

Bekanntes Mitglied
Schonmal probiert ob du nicht nur ein
Code:
toFront()
brauchst sondern auch direkt den Fokus verlangen musst?
Ich meine:
Java:
meinFenster.toFront();
meinFenster.requestFocus();
War so eine spontane Idee.

Ansonsten gibt es vielleicht ein paar Tricksereien mit
Code:
setAlwaysOnTop()
... aber wie gesagt: Trickserei.

Leider bringt das auch nichts. Das JFrame.requestFocus(); macht überhaupt nichts, kein sichtbares Ergebnis.

Alles in allem habe ich das am Wochenende auch mal unter Windows 7 ausprobiert, das gleiche Ergebnis. Windows scheint das wirklich zu unterbinden und stattdessen die Taskleiste blinken zu lassen.

Mit setAlwaysOnTop() habe ich auch mal etwas probiert. Damit bekomme ich das Fenster in den Vordergrund, das klappt problemlos, aber nur, wenn das Fenster nicht minimiert ist. Das Fenster selber bekommt dann aber trotzdem den Fokus nicht sondern blinkt wiederum in der Taskleiste.

Alles in allem bringt mich das zu dem Schluss, dass Windows verhindert, wenn ein Programm den Fokus haben will. Kann man eventuell in der Regestry umstellen, habe dazu was gefunden, da wollte ich aber nicht dran herumfummeln.




Unterm Strich möchte ich die Kompartibilität zu Linux / Unix auch nicht aufgeben, auch wenn ich das derzeit nicht da testen kann (muss das erst wieder installieren :) ) soll das Programm dennoch da laufen.



Ich kann mit dem Blinken sehr gut leben, das ist eine Reaktion, die der Nutzer sieht. Das Thema hat sich somit erledigt.
Danke Euch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
C Anderes Programm aus Taskleiste in Vordergrund bringen Allgemeine Java-Themen 2
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
T Addons im eigenen Programm Allgemeine Java-Themen 1
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
D Programm designen Allgemeine Java-Themen 1
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
O 2D-Grafik BioFarben-Programm soll auf Vollbild schalten Allgemeine Java-Themen 1
S Nachrichten Filter Programm Allgemeine Java-Themen 14
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
Lukas2904 Swing Anzeigen lassen das das Programm geschlossen wurde Allgemeine Java-Themen 3
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
S Programm entwickeln, welches ein Dreieckspuzzle lösen kann Allgemeine Java-Themen 5
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
L Eclipse Konsole im exportierten Programm Allgemeine Java-Themen 2
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
S Einfaches Programm programmieren Allgemeine Java-Themen 5
M kleines KI Programm Idee Allgemeine Java-Themen 7
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
N Programm startet nicht, nur per cmd Allgemeine Java-Themen 5
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
E Java Programm mit Clients erweitern - Möglichkeiten? Allgemeine Java-Themen 2
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
R Programm zur Rekursion Allgemeine Java-Themen 5
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
dereki2000 Programm veröffentlichen Allgemeine Java-Themen 14
mrbig2017 Threads Chat Programm mit Threads? Allgemeine Java-Themen 2
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Java Programm (Spiel mit den Boxen) Allgemeine Java-Themen 1
kodela Programm hängt in der Ereigniswarteschlange Allgemeine Java-Themen 13
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
P Programm darf nicht mehrfach startbar sein Allgemeine Java-Themen 16
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
JavaNewbie2.0 Programm nicht im Taskmanager schliesen können Allgemeine Java-Themen 15
J XML Datei mit installiertem Programm öffnen Allgemeine Java-Themen 7
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
JavaNewbie2.0 Programm bleibt "stehen" Allgemeine Java-Themen 2
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
E Mit Java ein Python Programm starten Allgemeine Java-Themen 20
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
Aruetiise Methoden .jar mit Programm öffnen Allgemeine Java-Themen 2
C anderes Programm schließen! Allgemeine Java-Themen 5
C Webseiten Programm problem Allgemeine Java-Themen 5
E Programm auf Installation prüfen Allgemeine Java-Themen 1
J Programm zum Download von CSV-Dateien Allgemeine Java-Themen 4
E Programm ohne Windowsrand(Vollbild) ? Allgemeine Java-Themen 5
G Programm, das nach abgearbeiteter main Methode weiterläuft Allgemeine Java-Themen 72
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
J Schutz Programm Jar Exe Allgemeine Java-Themen 7
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
X jvm exception abfangen und an externes Programm schicken Allgemeine Java-Themen 4
B Programm updaten mit FXLauncher Allgemeine Java-Themen 1
D Nicht quelloffenes Programm Allgemeine Java-Themen 5
F Java-Programm lizensieren Allgemeine Java-Themen 21
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
X Aus Programm "Installationsprogramm" machen Allgemeine Java-Themen 6
T Java Programm in Internetseite? Allgemeine Java-Themen 4
T Java Programm frisst RAM Allgemeine Java-Themen 6
H Alter Java-Programm läuft nicht mehr. Laut strace fehlt libpthread.so.0 Allgemeine Java-Themen 3
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
Neumi5694 Offenes Programm nutzen Allgemeine Java-Themen 4
L Java-Programm Zahlenkombinationen ausgeben Allgemeine Java-Themen 10
KaffeeFan Methoden Suche Methode um Programm kurz warten zu lassen Allgemeine Java-Themen 22
J Programm meldet "Keine Rückmeldung" nach Verbindung zum Server Allgemeine Java-Themen 4
T Java Programm sauber beenden (Mac OS) Allgemeine Java-Themen 7

Ähnliche Java Themen


Oben