SWT - Forcer une fenêtre à rester en arrière plan - Java - Programmation
Marsh Posté le 12-07-2007 à 17:52:45
Moi non plus je ne vois pas l'intérêt pour l'instant, mais mon tuteur m'a demandé de faire ça pour mon stage, donc je n'ai pas le choix...
Marsh Posté le 12-07-2007 à 18:46:04
tuteur entreprise ?
il a rien à te faire faire, donc il cherche des trucs qui servent à rien...
t'aurais été dans le bâtiment, il t'aurai demandé un tourne-vis pour gauché.
Marsh Posté le 13-07-2007 à 04:24:39
Bah, j'entends bien, mais en attendant, il me réclame une solution. Personne n'a une idée ?
Marsh Posté le 13-07-2007 à 09:43:22
Je ne peux pas faire ça parce que je ne pourrais pas donner d'ordre à d'autres fenêtres si ce n'est pas moi qui les gère : il faut que cette fenêtre-ci reste systématiquement au fond de l'écran, quelque soit la fenêtre qui est ouverte. Peut-être par contre que je peux me débrouiller pour essayer de tuer le onFocus de ma fenêtre... à voir...
Marsh Posté le 13-07-2007 à 09:52:53
tu veux que ta fenêtre reste en arrière plan quelque soit l'application qui est en avant plan ?
ça me semble être plus proche du système d'exploitation ça (bureau), non ?
Marsh Posté le 13-07-2007 à 09:57:51
Oui, c'est ce que je me dis aussi. Du coup je voulais le faire en C++ mais il veut absolument le faire en Java. En fait, je ne sais pas à quoi ça sert pour l'instant parce que je fais mon stage en Chine et que je n'ai pas encore bien compris l'énoncé du stage. En gros, je crois qu'il s'agit d'une espèce de logiciel qui permettrait de lancer d'autres applications, comme un desktop, oui.
J'ai trouvé un début de piste : si je fais un setEnabled(false) sur le shell, effectivement, on ne peut plus le remettre en avant-plan. Mais du coup, forcément, on ne peut plus faire d'action sur la fenêtre...
Marsh Posté le 13-07-2007 à 11:57:10
Si je me passe des listeners, je peux contourner le problème en lisant directement les données de la souris dans la boucle while (!shell.isDisposed()), en passant par display.getCursorLocation(). Là ça marche, je peux avoir ma fenêtre qui reste en arrière-plan, et lire les informations de la souris dans mon programme. C'est crade, mais le principal, c'est que ça fonctionne, pour l'instant.
Le problème, du coup, c'est que ça consomme beaucoup de ressources parce que je travaille dans le while, mais en cherchant, je dois pouvoir trouver un moyen pour limiter ça. Ce qui est plus inquiétant par contre, c'est que je ne peux pas savoir si un bouton de la souris est cliqué, et que je suis incapable de trouver comment lire les informations qui viennent du clavier. Quelqu'un connaîtrait-il une commande SWT qui me permettrait de lire les informations sur l'état des boutons de la souris, et lire l'entrée du clavier, sans passer par un listener ?
Merci...
Marsh Posté le 12-07-2007 à 12:14:04
Bonjour,
Je suis un débutant avec SWT (j'ai déjà utilisé SWING, cela dit). Je cherche désespérément à afficher une fenêtre qui resterait tout le temps en arrière plan : quand on cliquerait dessus, elle ne passerait donc jamais en avant-plan. Ce serait donc l'inverse d'une boîte de dialogue modale. Le programme doit tourner sous Linux (surtout sur Red Hat, SuSe et Red Flag). Quelqu'un aurait-il une idée pour faire ça ?
Merci d'avance !