[debutant] empêcher un JInternalFrame d'être changé
5 réponses
julien
Bonjour
J'ai une application qui doit afficher des frames les une après les
autres, l'ordre peut changer suivant certains paramètres.
J'ai pensé qu'il était préférable d'utiliser des JInternalFrame pour
pouvoir facilement afficher celle qui convient. Mais comment faire pour
empêcher l'utilisateur de bouger la JInternalFrame à l'intérieur du
DesktopPane (en "grabbant" la barre de titre avec la souris)? Je n'ai
rien trouvé dans les API de Java fournis par Sun.
Également, je n'ai pas réussi à trouver qu'elle est la meilleure méthode
pour communiquer entre JInternalFrame, sachant que chaque JInternalFrame
est une classe différente.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jocelyn
Salut,
Si le seul but de ta manip' est de pouvoir afficher un ecran ou un autre selon tes criteres, alors je pense que tu fais fausse route. Pour faire cela utilise plutot un CardLayout avec des JPanel. Les JInternalFrame ne poursuivent pas ce but. On les utilise plutot dans le cas d'applis MDI, c'est-a-dire multi-documents entre lesquels l'utilisateur peut se balader a volonté (style open office par exemple). D'autre part, si tes écrans doivent communiquer entre eux, et quelle que soit l'option que tu choisiras, tu devras stocker à un niveau supérieur la reference à chaque ecran, et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton appli va etre illisible. Mais effectivement c'est à toi de le faire et java ne prevoit rien en standard.
++
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
"julien" a écrit dans le message news: 415785fc$0$23945$
Bonjour J'ai une application qui doit afficher des frames les une après les autres, l'ordre peut changer suivant certains paramètres.
J'ai pensé qu'il était préférable d'utiliser des JInternalFrame pour pouvoir facilement afficher celle qui convient. Mais comment faire pour empêcher l'utilisateur de bouger la JInternalFrame à l'intérieur du DesktopPane (en "grabbant" la barre de titre avec la souris)? Je n'ai rien trouvé dans les API de Java fournis par Sun.
Également, je n'ai pas réussi à trouver qu'elle est la meilleure méthode pour communiquer entre JInternalFrame, sachant que chaque JInternalFrame est une classe différente.
Merci Julien
Salut,
Si le seul but de ta manip' est de pouvoir afficher un ecran ou un autre
selon
tes criteres, alors je pense que tu fais fausse route. Pour faire cela
utilise plutot
un CardLayout avec des JPanel. Les JInternalFrame ne poursuivent pas ce but.
On les utilise plutot dans le cas d'applis MDI, c'est-a-dire multi-documents
entre
lesquels l'utilisateur peut se balader a volonté (style open office par
exemple).
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que
soit l'option
que tu choisiras, tu devras stocker à un niveau supérieur la reference à
chaque ecran,
et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton
appli va etre
illisible. Mais effectivement c'est à toi de le faire et java ne prevoit
rien en standard.
++
--
Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne
pas devenir un monstre lui-même
"julien" <julien@sobrier.net> a écrit dans le message news:
415785fc$0$23945$626a14ce@news.free.fr...
Bonjour
J'ai une application qui doit afficher des frames les une après les
autres, l'ordre peut changer suivant certains paramètres.
J'ai pensé qu'il était préférable d'utiliser des JInternalFrame pour
pouvoir facilement afficher celle qui convient. Mais comment faire pour
empêcher l'utilisateur de bouger la JInternalFrame à l'intérieur du
DesktopPane (en "grabbant" la barre de titre avec la souris)? Je n'ai
rien trouvé dans les API de Java fournis par Sun.
Également, je n'ai pas réussi à trouver qu'elle est la meilleure méthode
pour communiquer entre JInternalFrame, sachant que chaque JInternalFrame
est une classe différente.
Si le seul but de ta manip' est de pouvoir afficher un ecran ou un autre selon tes criteres, alors je pense que tu fais fausse route. Pour faire cela utilise plutot un CardLayout avec des JPanel. Les JInternalFrame ne poursuivent pas ce but. On les utilise plutot dans le cas d'applis MDI, c'est-a-dire multi-documents entre lesquels l'utilisateur peut se balader a volonté (style open office par exemple). D'autre part, si tes écrans doivent communiquer entre eux, et quelle que soit l'option que tu choisiras, tu devras stocker à un niveau supérieur la reference à chaque ecran, et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton appli va etre illisible. Mais effectivement c'est à toi de le faire et java ne prevoit rien en standard.
++
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
"julien" a écrit dans le message news: 415785fc$0$23945$
Bonjour J'ai une application qui doit afficher des frames les une après les autres, l'ordre peut changer suivant certains paramètres.
J'ai pensé qu'il était préférable d'utiliser des JInternalFrame pour pouvoir facilement afficher celle qui convient. Mais comment faire pour empêcher l'utilisateur de bouger la JInternalFrame à l'intérieur du DesktopPane (en "grabbant" la barre de titre avec la souris)? Je n'ai rien trouvé dans les API de Java fournis par Sun.
Également, je n'ai pas réussi à trouver qu'elle est la meilleure méthode pour communiquer entre JInternalFrame, sachant que chaque JInternalFrame est une classe différente.
Merci Julien
julien
jocelyn wrote:
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que soit l'option que tu choisiras, tu devras stocker à un niveau supérieur la reference à chaque ecran, et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton appli va etre illisible. Mais effectivement c'est à toi de le faire et java ne prevoit rien en standard.
Merci pour ces renseignemnets. Je n'ai pas réussi à trouver d'exemple de tel communication. Quelle méthode utilise-ton pour comunniquer entre Frames, ou entre une Frame est son "lanceur": -une variable globale qui seraient partagées? -un pipe? -autre chose?
Merci Julien
jocelyn wrote:
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que
soit l'option
que tu choisiras, tu devras stocker à un niveau supérieur la reference à
chaque ecran,
et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton
appli va etre
illisible. Mais effectivement c'est à toi de le faire et java ne prevoit
rien en standard.
Merci pour ces renseignemnets.
Je n'ai pas réussi à trouver d'exemple de tel communication. Quelle
méthode utilise-ton pour comunniquer entre Frames, ou entre une Frame
est son "lanceur":
-une variable globale qui seraient partagées?
-un pipe?
-autre chose?
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que soit l'option que tu choisiras, tu devras stocker à un niveau supérieur la reference à chaque ecran, et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton appli va etre illisible. Mais effectivement c'est à toi de le faire et java ne prevoit rien en standard.
Merci pour ces renseignemnets. Je n'ai pas réussi à trouver d'exemple de tel communication. Quelle méthode utilise-ton pour comunniquer entre Frames, ou entre une Frame est son "lanceur": -une variable globale qui seraient partagées? -un pipe? -autre chose?
Merci Julien
jocelyn
Disons que tu as un JPanel pere qui contient, via un cardLayout, les JPanel fils. Le pere stocke une reference a chacun de ses fils, et les fils stockent la reference de leur pere. Imaginons que le panel fils1 veuille envoyer un message au panel fils2. Attention ce qui suit n'est la QUE pour illustrer le principe ! Dans fils1 tu auras: pere.envoieMessageFils2(); Dans pere tu auras: public void envoieMessageFils2() { fils2.envoieMessage(); } Et dans fils2: public void envoieMessage() { ...... }
Evidemment il y a un fort couplage entre le pere et les fils, mais au moins tu evites le couplage entre freres. Si les messages a envoyer entre freres deviennent nombreux, - soit il y a peut-etre un probleme de conception de tes ecrans, - soit tu peux commencer a reflechir a des trucs plus aboutis techniquement, comme creer un jeu d'evenements personnalises.
Voila j'espere que c'est + clair maintenant :)
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
"julien" a écrit dans le message news: 415cea79$0$29605$
jocelyn wrote:
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que soit l'option que tu choisiras, tu devras stocker à un niveau supérieur la reference à chaque ecran, et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton
appli va etre illisible. Mais effectivement c'est à toi de le faire et java ne prevoit rien en standard.
Merci pour ces renseignemnets. Je n'ai pas réussi à trouver d'exemple de tel communication. Quelle méthode utilise-ton pour comunniquer entre Frames, ou entre une Frame est son "lanceur": -une variable globale qui seraient partagées? -un pipe? -autre chose?
Merci Julien
Disons que tu as un JPanel pere qui contient, via un cardLayout, les JPanel
fils.
Le pere stocke une reference a chacun de ses fils, et les fils stockent la
reference de leur pere. Imaginons que le panel fils1 veuille envoyer un
message
au panel fils2. Attention ce qui suit n'est la QUE pour illustrer le
principe !
Dans fils1 tu auras:
pere.envoieMessageFils2();
Dans pere tu auras:
public void envoieMessageFils2() {
fils2.envoieMessage();
}
Et dans fils2:
public void envoieMessage() {
......
}
Evidemment il y a un fort couplage entre le pere et les fils, mais au moins
tu evites
le couplage entre freres. Si les messages a envoyer entre freres deviennent
nombreux,
- soit il y a peut-etre un probleme de conception de tes ecrans,
- soit tu peux commencer a reflechir a des trucs plus aboutis techniquement,
comme
creer un jeu d'evenements personnalises.
Voila j'espere que c'est + clair maintenant :)
--
Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne
pas devenir un monstre lui-même
"julien" <julien@sobrier.net> a écrit dans le message news:
415cea79$0$29605$626a14ce@news.free.fr...
jocelyn wrote:
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que
soit l'option
que tu choisiras, tu devras stocker à un niveau supérieur la reference à
chaque ecran,
et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon
ton
appli va etre
illisible. Mais effectivement c'est à toi de le faire et java ne prevoit
rien en standard.
Merci pour ces renseignemnets.
Je n'ai pas réussi à trouver d'exemple de tel communication. Quelle
méthode utilise-ton pour comunniquer entre Frames, ou entre une Frame
est son "lanceur":
-une variable globale qui seraient partagées?
-un pipe?
-autre chose?
Disons que tu as un JPanel pere qui contient, via un cardLayout, les JPanel fils. Le pere stocke une reference a chacun de ses fils, et les fils stockent la reference de leur pere. Imaginons que le panel fils1 veuille envoyer un message au panel fils2. Attention ce qui suit n'est la QUE pour illustrer le principe ! Dans fils1 tu auras: pere.envoieMessageFils2(); Dans pere tu auras: public void envoieMessageFils2() { fils2.envoieMessage(); } Et dans fils2: public void envoieMessage() { ...... }
Evidemment il y a un fort couplage entre le pere et les fils, mais au moins tu evites le couplage entre freres. Si les messages a envoyer entre freres deviennent nombreux, - soit il y a peut-etre un probleme de conception de tes ecrans, - soit tu peux commencer a reflechir a des trucs plus aboutis techniquement, comme creer un jeu d'evenements personnalises.
Voila j'espere que c'est + clair maintenant :)
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
"julien" a écrit dans le message news: 415cea79$0$29605$
jocelyn wrote:
D'autre part, si tes écrans doivent communiquer entre eux, et quelle que soit l'option que tu choisiras, tu devras stocker à un niveau supérieur la reference à chaque ecran, et passer par ce niveau superieur pour dialoguer entre 2 ecrans, sinon ton
appli va etre illisible. Mais effectivement c'est à toi de le faire et java ne prevoit rien en standard.
Merci pour ces renseignemnets. Je n'ai pas réussi à trouver d'exemple de tel communication. Quelle méthode utilise-ton pour comunniquer entre Frames, ou entre une Frame est son "lanceur": -une variable globale qui seraient partagées? -un pipe? -autre chose?
Merci Julien
julien
jocelyn wrote:
Disons que tu as un JPanel pere qui contient, via un cardLayout, les JPanel fils. Le pere stocke une reference a chacun de ses fils, et les fils stockent la reference de leur pere. Imaginons que le panel fils1 veuille envoyer un message au panel fils2. Attention ce qui suit n'est la QUE pour illustrer le principe ! Dans fils1 tu auras: pere.envoieMessageFils2(); Dans pere tu auras: public void envoieMessageFils2() { fils2.envoieMessage(); } Et dans fils2: public void envoieMessage() { ...... }
Evidemment il y a un fort couplage entre le pere et les fils, mais au moins tu evites le couplage entre freres. Si les messages a envoyer entre freres deviennent nombreux, - soit il y a peut-etre un probleme de conception de tes ecrans, - soit tu peux commencer a reflechir a des trucs plus aboutis techniquement, comme creer un jeu d'evenements personnalises.
Voila j'espere que c'est + clair maintenant :)
Bonjour En fait, ce qui me manque vraiment, c'est à quoi ressemble la methode public void envoieMessage(). Je n'ai pas trouvé d'exemple.
Merci Julien
jocelyn wrote:
Disons que tu as un JPanel pere qui contient, via un cardLayout, les JPanel
fils.
Le pere stocke une reference a chacun de ses fils, et les fils stockent la
reference de leur pere. Imaginons que le panel fils1 veuille envoyer un
message
au panel fils2. Attention ce qui suit n'est la QUE pour illustrer le
principe !
Dans fils1 tu auras:
pere.envoieMessageFils2();
Dans pere tu auras:
public void envoieMessageFils2() {
fils2.envoieMessage();
}
Et dans fils2:
public void envoieMessage() {
......
}
Evidemment il y a un fort couplage entre le pere et les fils, mais au moins
tu evites
le couplage entre freres. Si les messages a envoyer entre freres deviennent
nombreux,
- soit il y a peut-etre un probleme de conception de tes ecrans,
- soit tu peux commencer a reflechir a des trucs plus aboutis techniquement,
comme
creer un jeu d'evenements personnalises.
Voila j'espere que c'est + clair maintenant :)
Bonjour
En fait, ce qui me manque vraiment, c'est à quoi ressemble la methode
public void envoieMessage(). Je n'ai pas trouvé d'exemple.
Disons que tu as un JPanel pere qui contient, via un cardLayout, les JPanel fils. Le pere stocke une reference a chacun de ses fils, et les fils stockent la reference de leur pere. Imaginons que le panel fils1 veuille envoyer un message au panel fils2. Attention ce qui suit n'est la QUE pour illustrer le principe ! Dans fils1 tu auras: pere.envoieMessageFils2(); Dans pere tu auras: public void envoieMessageFils2() { fils2.envoieMessage(); } Et dans fils2: public void envoieMessage() { ...... }
Evidemment il y a un fort couplage entre le pere et les fils, mais au moins tu evites le couplage entre freres. Si les messages a envoyer entre freres deviennent nombreux, - soit il y a peut-etre un probleme de conception de tes ecrans, - soit tu peux commencer a reflechir a des trucs plus aboutis techniquement, comme creer un jeu d'evenements personnalises.
Voila j'espere que c'est + clair maintenant :)
Bonjour En fait, ce qui me manque vraiment, c'est à quoi ressemble la methode public void envoieMessage(). Je n'ai pas trouvé d'exemple.
Merci Julien
jocelyn
Pour ca il faudrait que tu me donnes un exemple concret de ce que tu veux faire :)
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
Pour ca il faudrait que tu me donnes un exemple concret de ce que tu veux
faire :)
--
Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne
pas devenir un monstre lui-même