Creation fenetre Java

Fermé
vince111 - 23 janv. 2009 à 22:10
 vince111 - 25 janv. 2009 à 18:00
Bonjour,
Je débute en java et j'aimerai créer une fenêtre sans barre de titre et redimensionnable.
En utilisant set.undecorated avec un JFrame, la fenêtre n'est plus redimensionnable.

Si quelqu'un pouvait m'orienter...

merci
A voir également:

1 réponse

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
25 janv. 2009 à 17:17
Bonjour,

Une aspirine ? :D

Tu vas devoir tout faire toi-même, c'est à dire implémenter le drag de la fenêtre, la détection de la position de la souris par rapport à chaque bord de la fenêtre, le changement des icônes,... Bref, bon courage ! Tout d'abord je te conseille de commencer sur une fenêtre vierge (en d'autres mots ne lui ajoute aucun composant sinon tu ne vas pas comprendre pourquoi les événements sur la fenêtre ne fonctionnent pas).

Pour ce faire, tu pourras, grâce à Java, ajouter un MouseMotionListener sur la fenêtre :

La méthode mouseMoved te permettra de détecter les déplacements de souris. Tu feras un calcul de position par rapport aux bords de la fenêtre. Tu pourras laisser une marge d'erreur de 10 pixels côté intérieur par exemple (facilement calculable avec des soustractions de la hauteur/largeur de la fenêtre et getLocationOnScreen).

Les différentes flèches pour le curseur peuvent être appliquées à la Frame grâce à la méthode setCursor et les constantes présentes dans la classe Cursor. Là aussi en fonction du bord ce sera à toi de définir quel curseur afficher (horizontal, vertical,...). Tu as donc plusieurs types de bords à détecter : les 4 coins et les 4 côtés pour 4 icônes différentes seulement.

La méthode mouseDragged te permettra de détecter les déplacements de souris lorsque le bouton gauche est enfoncé (c'est à dire ce qu'on fait quand on veut redimensionner la fenêtre). Il te suffira de jouer sur les propriété de taille de la fenêtre pour que ça corresponde aux mouvements de l'utilisateur... sans oublier de bloquer sur des dimensions trop petites ou négatives...

En gros tu es parti pour refaire toi-même la gestion d'une fenêtre... réfléchis-bien si ça t'est vraiment indispensable, moi-même m'y suis juste risqué sans avoir vraiment développé la chose (je n'ai fait que le déplacement, le plus facile à faire et encore c'est pas tip top, et la détection du bord inférieur droit sans redimensionnement). Sinon essaie peut-être de voir du côté des LookAndFeel s'il n'y en a pas un qui conserve les événements système d'une fenêtre mais qui donne l'impression que les bords soient inexistants... c'est juste une idée comme ça, je ne sais pas si c'est réellement faisable.
0
Merci beaucoup posotaz.
Je vai me risquer a essayer quand même, au pire, ca me fera un b entrainement
Ciao
0