Problème d'interface (Button, GridLayout, Size)

Résolu
Signaler
Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009
-
Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009
-
Bonjour

Je suis entrain de faire un démineur pour un projet scolaire et j'ai quelques problèmes au niveau de l'interface.
Premièrement, j'ai un GridLayout qui contient toutes les Cases (qui sont des JButton) de mon démineur. Or voila, j'ai beau faire un bouton.setSize(16, 16) ... il prend la taille de toute la cellule qui dépend de la taille de la fenêtre. J'aimerais pouvoir faire que la taille des cellules sois 16x16 ou bien qu'elle dépende de la grosseur du bouton à l'intérieur.

Mon second problème est que lorsque je veux mettre du texte dans mon boutton. il doit etre vraiment trop gros pour enfin voir le texte. A la place il met "...". Ceomment faire pour qu'il affiche le texte même si le bouton est petit ? Pourtant les numéros seraient capable de rentrer dedans.

Mon troisème problème ... le plus Chiannnnntt. C'est que j'ajoute tous mes boutons mais il ne s'affiche pas t'en que je ne passe pas la souri dessu. J'ai beau metre des this.repaint() un peu partout il n'a rien a faire

Voici le constructeur de mes Cases :
    public Case() {
        super();
        //this.setSize(Case.defaultCaseDimension);
        this.setSize(16, 16);
       
        // Valeurs par défaut
        this.position = new Point(0,0);
        this.state = 0;
    }

Et l'initiation de mon GridLayout dans mon Game qui est un JPanel
    public Game(Board pBoard) {
        super();
       
        GridLayout grid = new GridLayout(pBoard.getWidth(), pBoard.getHeight());
       
        //this.setLayout(new GridLayout(pBoard.getWidth(), pBoard.getHeight()));
        this.setLayout(grid);
...

Si vous voulez plus de code dite le moi.

Voila un screenshot du résultat présent avec le problème de la souris qui n'est peut-être pas très clair.

~~ Cordialement François Gingras

4 réponses

Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

1 - Le problème que tu as est typique du GridLayout... essais d'utiliser un BoxLayout ou un GridBagLayout qui sont beaucoup plus souple pour ce genre de placement (enfin c'est mon avis ^^).
2 - Essais de modifier la police de ton bouton.
3 - Là comme ça je vois pas trop, il faudrait plus d'infos.

En SWING il est préférable d'utiliser la méthode setPreferredSize en lieu et place de la méthode setSize (ça fonctionne mieux avec ^^)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009

Super !! le setPreferredSize a réglé le gros problème avec la grosseur des boutons. Pour le texte jai changé les marges pour 0, 0, 0,0 et il apparaît maintenant.

Il ne me reste plus que le problème des boutons qui ne s'affiche pas t'en que je ne passe pas la souris dessus. Il redevienne tout invisible lorsque je met la fenêtre en réduction. Mais ce que je ne comprend pas, c'est que les boutons de mon menu reste et de ma ToolBar aussi. C'est juste les boutons dans mon JPanel Game qui a un GridLayout.

~~ Cordialement Francois Gingras
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

si le code est trop gros vient me voir en MP je te donnerais un mail pour que tu puisse me l'envoyer, mais dans tout les cas il faut le code pour voir ce qu'il se passe et t'aider à debug ton application

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009

Enfin !!

J,ai trouver le problème à mon bugue.

Javait uen classe Case qui Extends de JButton. Cette classe avait les méthode getX() et getY() qui sont en override !! Ici es le probème. En changant le nom de ses méthodes les boutons s'affiche !!!!

Merci pour les autres réponses !

~~ Cordialement Francois Gingras