Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creer une IHM digne de ce nom

Doit-on tout refaire ?

    30 avril 2012 à 10:51:30

    Bonjour a tous,

    Je sais que Java n'est pas le meilleur langage pour cela, mais je souhaiterai creer une interface graphique pour jeu, qui ressemble a quelque chose.
    Je m'explique : aujourd'hui mon interface est faite de differents panel organisés dans des layout, etc.
    Mon objectif : n'avoir en apparence qu'une seule fenetre et ouvrir les menus via des popup/ des fentres internes, mais qui acceptent un design et une organisation de mon cru.
    Pour illustrer un peu mes propos, je vous citerai en exemple les menus d'inventaire de minecraft, morrowind dans lesquels le panel d'affichage reste en arriere plan quand on ouvre un conteneur ou son inventaire, son equipement etc. Et l'on pas l'impression d'ouvrir un autre "onglet du jeu".

    Ma question est donc la suivante : existe-t-il des objets dans swing qui gerent cela, ou dois-je les creer moi-meme avec tout ce que cela implique... ?

    Merci d'avance pour vos conseils.
    • Partager sur Facebook
    • Partager sur Twitter
      30 avril 2012 à 12:17:45

      Bonjour,

      la question a plusieurs réponses (mais c'est une question très intéressante en effet).

      En réalité, il n'existe pas de panels prédéfinit pour tous les besoins (car il y en aurait une infinité, jamais au gout de personne).

      Mais tu n'as pas tout besoin de refaire.

      Si tu souhaite avoir des "sous-fenetres" dans ton programme, tu dispose de jtabbedPan (si mes souvenirs sont bons).
      Si tu ne veux pas que l'utilisateur les déplace, ni avoir de cadre ni avoir de bouton de fermeture... ben, tu peux utiliser les layeredPan (et je pense que c'est ce que tu feras au final).
      Sinon, tu peux aussi mettre un null layout et gérer toi-même l'organisation des panels (on en est pas encore à tout refaire, mais on s'en rapproche).
      En dernier recours tu peux décider de redéfinir la méthode paintComponents et ... gogogo tu redessines tout toi-même (là on est à "tout refaire soi-même").

      Tu disposes aussi d'une autre approche: swing permet de redéfinir le style des composants (ce qui permet d'avoir un style gtk/windows/mac selon le SE). Mais je ne sais pas si cela correspond à ce que tu cherches (tu peux créer ton propre style mais bien souvent c'est "too much").

      Voila, en espérant avoir pu t'aider.
      • Partager sur Facebook
      • Partager sur Twitter
        2 mai 2012 à 14:26:03

        Merci beaucoup pour ta réponse. J'ai effectivement découvert ce super outil que sont les layeredPane. C'est dommage que ces objets ne soient pas présentés dans le tutorial JAVA du SdZ, mais j'imagine que c'est du boulot en plus, et je reconnais que le tuto est déjà vraiment bien foutu.

        Maintenant, j'ai l'impression que depuis que je suis passé d'un gridbaglayout à un layeredPane, il y des lags, il faut que j'investigue d'où ca vient... (en fait c'est plus qu'une impression, puisque le programme répond avec 2 à 5 secondes de délai/lag, et l'affichage initialement mis à jour plusieurs fois par secondes n'est plus mis à jour que toute les 1,5 secondes...). Enfin bon, si je ne trouve pas par moi-même je créerai un sujet adéquate : comment trouver ce qui fait lagger un programme dans eclipse... (ou encore, est-ce la faute d'un paramétrage mal foutu de mon ordi puisque ca marche chez d'autres...)

        merci encore



        • Partager sur Facebook
        • Partager sur Twitter

        Creer une IHM digne de ce nom

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown