IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Petit jeu en java


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    je fais un setPreferredSize ... d ailleur c quoi la diff entre setPreferredSize et setSize ?

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    preferred size : la taille que le composant prefere avoir.
    size : la taille actuelle du composant.
    minimumSize : taille minimale.
    maximumSize : taille maximale.

    Je crois que componentResized() n'est appellee que quand setSize() est utilisee. Et pack() utilise la preferredSize => donc il faut utiliser les 2 methodes.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par bouye
    preferred size : la taille que le composant prefere avoir.
    size : la taille actuelle du composant.
    minimumSize : taille minimale.
    maximumSize : taille maximale.

    Je crois que componentResized() n'est appellee que quand setSize() est utilisee. Et pack() utilise la preferredSize => donc il faut utiliser les 2 methodes.


    Ah oui ... ca il faut le savoir !!! ca marche ! merci !

    edit :tu saurais pas si il est possible de mettre une jframe en modal ???

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Il te faut utiliser un JDialog comme on te l'a indique precedement.
    Apres si dans la gestion des evenements et/ou autre tu utilises l'interface Window tu peux assez facilement faire du code generique qui fonctionne avec des JWindow, des JFrame et des JDialog, voir meme des composants AWT.

    Peut-etre est-'il possible egalement de bidouiller un WindowListener, un WindowFocusListener ou un FocusListener pour remettre la fenetre en avant-plan et reprendre le focus si la fenetre est desactivee ou perd le focus... mais bon mes essais perso d'il y a qq annees dans ce domaine generaient bien plus de problemes qu'ils n'en solvaient.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par bouye
    Je crois que componentResized() n'est appellee que quand setSize() est utilisee. Et pack() utilise la preferredSize => donc il faut utiliser les 2 methodes.
    Il me semble plutôt que les différents types de taille (size, preferredsize, minimumSize et maximumSize) dépendent du LayoutManager qui est utilisé...

    Par exemple avec le Layout null c'est setSize() qui est pris en compte,
    alors que le FlowLayout utiliser la preferredSize,
    le BorderLayout ne prend en compte que la preferredSize (et partiellement selon la position NORTH/SOUTH/EAST/WEST/CENTER),
    et d'autre ignoreront toutes ces propriétés comme le GribLayout....

    a++

  6. #6
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par bouye
    Il te faut utiliser un JDialog comme on te l'a indique precedement.
    Apres si dans la gestion des evenements et/ou autre tu utilises l'interface Window tu peux assez facilement faire du code generique qui fonctionne avec des JWindow, des JFrame et des JDialog, voir meme des composants AWT.

    Peut-etre est-'il possible egalement de bidouiller un WindowListener, un WindowFocusListener ou un FocusListener pour remettre la fenetre en avant-plan et reprendre le focus si la fenetre est desactivee ou perd le focus... mais bon mes essais perso d'il y a qq annees dans ce domaine generaient bien plus de problemes qu'ils n'en solvaient.
    ah ok ... en fait je pensais que jdialog c etait les boites de dialogue systemes genre "voulez vous quitter ?" ....

    est ce que l on peut cacher une jframe ?

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Disons que c'est le composant de base : une fenetre n'apparaissant pas dans la barre des taches, liee (optionnellement) a une autre fenetre (dans ce cas elle n'apparait pas de maniere separee quand on fait ATL-TAB) et qui peut etre modale ou pas.

    Le JOptionPane est construit dessus.

    EDIT 2 - setVisible(false) pour cacher ou dispose() pour detruire.

    Oui j'avais completement oublie EDIT - d'indiquer que les comportements variaient grandement suivant le layout. Merci d'avoir rajoute la precision.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par bouye
    Disons que c'est le composant de base : une fenetre n'apparaissant pas dans la barre des taches, liee (optionnellement) a une autre fenetre (dans ce cas elle n'apparait pas de maniere separee quand on fait ATL-TAB) et qui peut etre modale ou pas.

    Le JOptionPane est construit dessus.

    EDIT 2 - setVisible(false) pour cacher ou dispose() pour detruire.

    Oui j'avais completement oublie EDIT - d'indiquer que les comportements variaient grandement suivant le layout. Merci d'avoir rajoute la precision.
    merci .. en fait j ai une fentre (avec des options) qui s affiche au demarrage (pas besoin d etre modal) et ensuite lorsque je fais "Nouvelle partie" elle doit s afficher en modal ... mais cela ne marche pas ! meme avec jdialog ... je n arrive pas a la definir en modal .

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 54
    Par défaut
    Je n'ai pas tout suivi, mais pour la mettre en modal c'est pas très compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class MaDialog extends JDialog {
     
    public MaDialog (MaFenetre fen) {
           super(fen, "titre", true) // param : fenetre mère, titre, modale oui/non
           ....
    }
     
    ...

  10. #10
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Tu ne peux pas changer la modalité d'une fenêtre après l'avoir affiché. Tu devrais plutôt faire quelque chose du genre :

    Dans ton main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JDialog dlg = new MonDialog(...);
    dlg.setModal(true);
    dlg.setVisible(true);
     
    // ici tu vérifie une condition pour continuer
    if(continuer)
      new GameFrame(...)
     
    //sinon on quitte

  11. #11
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par dr00w
    Tu ne peux pas changer la modalité d'une fenêtre après l'avoir affiché. Tu devrais plutôt faire quelque chose du genre :

    Dans ton main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JDialog dlg = new MonDialog(...);
    dlg.setModal(true);
    dlg.setVisible(true);
     
    // ici tu vérifie une condition pour continuer
    if(continuer)
      new GameFrame(...)
     
    //sinon on quitte
    je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NewGame aNewGame = new NewGame();
    aNewGame.setModal(true);
    pourtant j arrive a passer d une fenetre a l autre

  12. #12
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par Tentative
    Je n'ai pas tout suivi, mais pour la mettre en modal c'est pas très compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class MaDialog extends JDialog {
     
    public MaDialog (MaFenetre fen) {
           super(fen, "titre", true) // param : fenetre mère, titre, modale oui/non
           ....
    }
     
    ...
    j ai d abord essaye comme cela ... mais lors du premier demarrage il n y a pas de fenetre mere ... et il est impossible de definir plusieurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    super(fen, "titre", true) // param : fenetre mère, titre, modale oui/non

  13. #13
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Ajoute cette ligne après avoir récupéré ta condition. Si par exemple tu as un attribut genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     boolean utilisateurVoudraitBienJouer;
    dans ta classe dialog alors ça donne quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    JDialog dlg = new MonDialog(...);
    dlg.setModal(true);
    dlg.setVisible(true);
     
    boolean continuer = dlg.utilisateurVoudraitBienJouer;
     
    dlg.dispose();
    if(continuer)
      new GameFrame(...)
     
    //sinon on quitte

  14. #14
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    c bizarre jai beau essaye ...le jdialog reste la .... meme apres un dispose !

  15. #15
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    Ok.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				String Rep = Group.getSelection().getActionCommand();
     
    				if (Rep == "10x10")
    					MainFrame.NewGame (10, 10);
    				else if (Rep == "15x15")
    					MainFrame.NewGame (15, 15);
    				else
    					MainFrame.NewGame (10, 10);
     
    				dispose();
    			}
    		});

  16. #16
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut


    cherche vraiment de l aide


  17. #17
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Citation Envoyé par Seth77
    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    Ok.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				String Rep = Group.getSelection().getActionCommand();
     
    				if (Rep == "10x10")
    					MainFrame.NewGame (10, 10);
    				else if (Rep == "15x15")
    					MainFrame.NewGame (15, 15);
    				else
    					MainFrame.NewGame (10, 10);
     
    				dispose();
    			}
    		});
    Dans le code tu crée une classe anonyme (classe sans nom) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ok.addActionListener(new ActionListener() {
    ...
    dispose();
    Ce qui appelles dispose() sur ta classe anonyme.

  18. #18
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par dr00w
    Citation Envoyé par Seth77
    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    Ok.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				String Rep = Group.getSelection().getActionCommand();
     
    				if (Rep == "10x10")
    					MainFrame.NewGame (10, 10);
    				else if (Rep == "15x15")
    					MainFrame.NewGame (15, 15);
    				else
    					MainFrame.NewGame (10, 10);
     
    				dispose();
    			}
    		});
    Dans le code tu crée une classe anonyme (classe sans nom) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ok.addActionListener(new ActionListener() {
    ...
    dispose();
    Ce qui appelles dispose() sur ta classe anonyme.
    ah oui exact !!

    ma classe anonyme est situe dans le contructeur de la fenetre JDialog .. y a t il un moyen d acceder a la fenetre sans passer par une reference ?

  19. #19
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    voila j ai mis cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JDialog Dialog;		
    Dialog = this;
    dans le contructeur ...ca marche ...


    mais j arrive pas a la mettre en modal lors d un autre appel ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public class MenuListener implements ActionListener {
    		public void actionPerformed(ActionEvent e) {
    			String cmd = e.getActionCommand();
     
    			if (cmd == "Nouvelle partie") {
    		       System.out.println("Nouvelle partie...");
     
    		       NewGame aNewGame = new NewGame();
    		       aNewGame.setVisible(true);
    			}
    			else if (cmd == "Quitter") {
    				System.exit(0);
    		    }
     
    			getMainFrame().getGameMap().requestFocus();
    			getMainFrame().getGameMap().repaint();
    		}
    	}
    meme en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    aNewGame.setModal(true);

  20. #20
    Invité de passage
    Inscrit en
    Janvier 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1
    Par défaut
    Pour ce qui est de l'organisation de ton programme je te conseille d'utiliser un concept de Modele Vue Controlleur.
    ainsi tu separes les taches et tu reste suffisament organisé dans ton developpement.
    P.S: j'avais utilisé cette methode pour un projet scolaire (un jeu aussi)

Discussions similaires

  1. Aide pour concevoir un petit jeu en C
    Par samy100 dans le forum Projets
    Réponses: 11
    Dernier message: 30/10/2019, 11h22
  2. Réponses: 0
    Dernier message: 22/03/2010, 09h41
  3. Petit jeu multijoueur en ligne (commençons simple lol)
    Par Archaoniro dans le forum Langage
    Réponses: 25
    Dernier message: 24/03/2006, 18h31
  4. Nombre aléatoire (petit jeu)
    Par niCo.nb dans le forum C
    Réponses: 7
    Dernier message: 14/10/2005, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo