1

Est-ce que quelqu'un sait comment on demande aux fenêtres de se placer automatiquement en java ?

Il me semble que tout gestionnaire de fenêtre qui se respecte (en l'occurrence j'ai win2k, mais je ne sais pas si c'est un élément important) a des algorithmes qui permettent d'assigner automatiquement une position pas trop mauvaise à une fenêtre, en fonction des fenêtres déjà à l'écran, non ?

Donc ben je voudrais faire en sorte que ma fenêtre soit placée, par l'OS, à un endroit intelligent, mais je ne trouve pas comment faire. Si je ne fais rien, toutes
les fenêtres apparaissent par défaut en (0,0), ce qui est clairement l'option la plus débile possible (enfin non, on pourrait les mettre carrément hors de l'écran, mais bon). Sinon, on peut spécifier des coordonnées explicites, mais c'est lourd et je ne vois pas comment je peux deviner l'emplacement optimal... À part ça, le seul truc que j'ai trouvé c'est setLocationRelativeTo (qui place le coin haut-gauche de la fenêtre sur le composant passé en argument, ou au centre de l'écran si l'argument est null), mais déjà c'est pas forcément la meilleure position (vu que ça place le *haut* de la fenêtre à l'endroit intéressant, elle a toutes les chances de déborder en bas de l'écran et donc de devoir être déplacée pour qu'on puisse l'utiliser), et ensuite si on ouvre plusieurs fenêtres comme ça elles sont exactement superposées, ce qui est stupide... donc quelqu'un sait comment on fait pour demander à windows de placer la fenêtre pour nous, sachant qu'en général il s'en sort très bien ? confus
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

2

He bien oui c'est le gestionnaire de fenetre de Windows qui place par défaut en (0,0) ce qui n'est pas forcément le cas sous d'autre systemes(KDE par exemple).

Si tu veux center a l'écran, tu peux utiliser un truc du genre:
window.setSize(640,480);
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
window.setLocation((dim.width-640)/2, (dim.height-480/2));
avatar

3

Uther: Non, Windows ne place pas les fenêtres par défaut en (0, 0) : Il a tendance à les placer en cascade, et Sally demande comment faire pour que java ne place pas lui-même ses fenêtres, mais laisse Windows s'en occuper.

Franchement, moi, je ne sais même pas si c'est possible. Ce n'est pas dans le genre de java de laisser le moindre choix au système d'exploitation, c'est contre sa vocation de "platform-independent"...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

4

A mon avis ça doit dépendre de l'API que tu utilises. Si tu utilises Swing, étant donné que tout est codé coté Java, je doute que tu puisses placer intelligement les fenêtres. Mais si tu utilises SWT, tu as peut-être une chance que ça se fasse tout seul, en fait que ce soit fait par windows/gtk...

5

Non, Windows ne place pas les fenêtres par défaut en (0, 0) : Il a tendance à les placer en cascade, et Sally demande comment faire pour que java ne place pas lui-même ses fenêtres, mais laisse Windows s'en occuper.
Autant pour moi. En tout cas sur KDE, c'est la disopsition du Window manager qui est utilisée.
Je sais pas trop pourquoi ce n'est pas le cas sur Windows alors.
avatar

6

./4 > ouais mais j'utilise swing :-\ (en fait comme au départ je connaissais pas java j'ai pris le truc "standard" livré avec, donc swing).
Bon tant pis, merci happy
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#