Derniers sujets
Remplacer un JPanel par un autre
SOS internautes :: Aide informatique :: :: Programmation :: JAVA
Page 1 sur 1
Remplacer un JPanel par un autre
Enfin un tutoriel un peu plus intéressant et très pratique puisque j'en ai souvent eu besoin dans mes derniers logiciels, je vais vous expliquer ici comment faire, dans votre JFrame principal, pour retirer un JPanel (qui contient un niveau d'un jeu par exemple) et le remplacer par un autre (qui contiendrait le niveau suivant toujours dans cet exemple).
Ce n'est pas si simple à faire et c'est pourquoi je vais tout bien vous expliquer ici, tout d'abord cela ne peut être demandé que dans un KeyListener, un MouseListener ou un ActionListener puisqu'il faut que quelque chose déclenche le changement de panel (l'appui d'une touche ou d'un JButton par exemple).
Soyez donc sûr que votre JFrame contient quelque chose de ce genre, par exemple un KeyListener et une condition disant que quelque chose se passe si vous pressez la touche ENTER. Vous l'avez ? Parfait, nous allons mettre dans ce if tout ce qu'il faut pour retirer le JPanel et le remplacer par un autre.
Posons que nos deux JPanel se nomment panneau1 et panneau2 tout simplement et que notre container se nomme contentPane. Voilà ce qu'il faut donc mettre dans votre condition :
Je vais déjà vous expliquer ça et faire un lien avec les précédents tutoriels pour faire quelque chose de bien complet
La première ligne, contentPane.remove( panneau1 ); donc, va retirer ( to remove en anglais veux dire enlever donc ça prend tout son sens ) le premier JPanel.
La seconde ligne va déterminer ce qu'est panneau2, en l’occurrence notre second JPanel.
La troisième ligne va tout simplement ajouter le second JPanel comme vous l'aviez fait pour votre premier panneau.
Et c'est la quatrième ligne à laquelle on ne pense jamais, ce fameux validate sans lequel toute cette opération ne sert à rien. Et oui parce qu'il faut bien confirmer se changement à l'intérieur même du container principal, il ne faut donc surtout pas oublier cette dernière ligne parce que c'est justement son but.
Vous voyez, ce n'est pas difficile mais il faut trouver et quand on est pas anglophone ou sans un minimum de base pour comprendre la doc de chez sun on y trouve pas si facilement
En bonus, voici une application des derniers tutoriels (permettre l'utilisation d'un clavier dans un panel et mettre un fond coloré à ce même panel) utilisés tout en changeant de panel :
Ce n'est pas si simple à faire et c'est pourquoi je vais tout bien vous expliquer ici, tout d'abord cela ne peut être demandé que dans un KeyListener, un MouseListener ou un ActionListener puisqu'il faut que quelque chose déclenche le changement de panel (l'appui d'une touche ou d'un JButton par exemple).
Soyez donc sûr que votre JFrame contient quelque chose de ce genre, par exemple un KeyListener et une condition disant que quelque chose se passe si vous pressez la touche ENTER. Vous l'avez ? Parfait, nous allons mettre dans ce if tout ce qu'il faut pour retirer le JPanel et le remplacer par un autre.
Posons que nos deux JPanel se nomment panneau1 et panneau2 tout simplement et que notre container se nomme contentPane. Voilà ce qu'il faut donc mettre dans votre condition :
- Code:
contentPane.remove( panneau1 );
panneau2 = new Panneau2();
contentPane.add( panneau2 );
contentPane.validate();
Je vais déjà vous expliquer ça et faire un lien avec les précédents tutoriels pour faire quelque chose de bien complet
La première ligne, contentPane.remove( panneau1 ); donc, va retirer ( to remove en anglais veux dire enlever donc ça prend tout son sens ) le premier JPanel.
La seconde ligne va déterminer ce qu'est panneau2, en l’occurrence notre second JPanel.
La troisième ligne va tout simplement ajouter le second JPanel comme vous l'aviez fait pour votre premier panneau.
Et c'est la quatrième ligne à laquelle on ne pense jamais, ce fameux validate sans lequel toute cette opération ne sert à rien. Et oui parce qu'il faut bien confirmer se changement à l'intérieur même du container principal, il ne faut donc surtout pas oublier cette dernière ligne parce que c'est justement son but.
Vous voyez, ce n'est pas difficile mais il faut trouver et quand on est pas anglophone ou sans un minimum de base pour comprendre la doc de chez sun on y trouve pas si facilement
En bonus, voici une application des derniers tutoriels (permettre l'utilisation d'un clavier dans un panel et mettre un fond coloré à ce même panel) utilisés tout en changeant de panel :
- Code:
contentPane.remove( panneau1 );
panneau2 = new Panneau2();
panneau2.setFocusable( true );
panneau2.requestFocus();
panneau2.setBackground(Color.GREEN);
contentPane.add( panneau2 );
contentPane.validate();
Sujets similaires
» Jouer un son dans un JPanel
» Mettre une couleur de fond à un JPanel
» Utiliser le clavier uniquement dans un JPanel
» Lucia (et tout un tas d'autre pseudos...
» Mettre une couleur de fond à un JPanel
» Utiliser le clavier uniquement dans un JPanel
» Lucia (et tout un tas d'autre pseudos...
SOS internautes :: Aide informatique :: :: Programmation :: JAVA
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Lun 19 Déc - 11:24 par bigblaireau
» Présentation
Lun 19 Déc - 11:10 par bigblaireau
» probleme incredimail
Mar 22 Mar - 19:06 par vanille57540
» (supprimé)
Ven 18 Mar - 20:06 par louis1806
» présentation
Ven 18 Mar - 10:47 par louis1806