A voir également:
- [JAVA]pb avec CardLayout
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
- Java runtime environment - Télécharger - Langages
11 réponses
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
31 mai 2005 à 11:28
31 mai 2005 à 11:28
Que veux-tu faire exactement ? Quel est le but de ton prog ?
Il n'y a pas de main() dans tes classes...
Il n'y a pas de main() dans tes classes...
bonjour,
ça ça ne marcheras peut etre pas :
if(e.getSource() == panneauVert.bouton1)
t bouton sont en protected donc pour y accéder il faut InterfaceMenu hérite de tes classes PanneauX ou alors met en public tes boutons!
C'est que jvois comme erreurs possibles
Essayes pour voir si ça corrige ton problème
Bon courage
ça ça ne marcheras peut etre pas :
if(e.getSource() == panneauVert.bouton1)
t bouton sont en protected donc pour y accéder il faut InterfaceMenu hérite de tes classes PanneauX ou alors met en public tes boutons!
C'est que jvois comme erreurs possibles
Essayes pour voir si ça corrige ton problème
Bon courage
ben en fait g deux panneau qui sont sur un frame et je voudrai passer d'un panneau qui est vert a un panneau jaune grace a un bouton. Programme sans interet si ce né que de voir le fonctionnement du cardlayout é comment changer de panneau. Voila. Je né pa mi tou le code la c pour sa qu'il n'y pa de fonction main.
Pour les boutons il n'y pas de problemes d'accé vu quils sont dans le mm package que la class InterfaceMenu.
Merci si qqun peut m'aider
Pour les boutons il n'y pas de problemes d'accé vu quils sont dans le mm package que la class InterfaceMenu.
Merci si qqun peut m'aider
ok dsl javé pas vu ke t paneaux été a lintérieur de ta class principale
bon sinon jvé tester ton code et essayer de le debuggé
++
bon sinon jvé tester ton code et essayer de le debuggé
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ça marche en utilisant une autre méthode que show
voici ce que dit la doc sur :
public Component add(String name,
Component comp)Adds the specified component to this container. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
This method is obsolete as of 1.1. Please use the method add(Component, Object) instead.
c'est peut être pour ça que ça plante avec le show
ci-joint code
import javax.swing.JFrame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.*;
public class InterfaceMenu
extends JFrame
implements ActionListener {
private PanneauVert panneauVert;
private PanneauJaune panneauJaune;
private CardLayout cl;
public InterfaceMenu(String titre) {
super(titre);
cl = new CardLayout();
this.getContentPane().setLayout(cl);
this.getContentPane().setBackground(Color.red);
panneauVert = new PanneauVert();
this.getContentPane().add(panneauVert, "Paneau vert");
panneauJaune = new PanneauJaune();
this.getContentPane().add(panneauJaune, "Paneau jaune");
panneauVert.bouton1.addActionListener(this);
panneauJaune.bouton1.addActionListener(this);
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == panneauVert.bouton1) {
cl.next(this.getContentPane());
}
if (e.getSource() == panneauJaune.bouton1) {
cl.first(this.getContentPane());
}
}
class PanneauVert
extends JPanel {
protected JButton bouton1;
public PanneauVert() {
this.setBackground(Color.green);
bouton1 = new JButton("Jaune");
this.add("North", bouton1);
this.setVisible(true);
}
}
class PanneauJaune
extends JPanel {
protected JButton bouton1;
public PanneauJaune() {
this.setBackground(Color.yellow);
bouton1 = new JButton("Vert");
this.add("South", bouton1);
this.setVisible(true);
}
}
}
voici ce que dit la doc sur :
public Component add(String name,
Component comp)Adds the specified component to this container. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
This method is obsolete as of 1.1. Please use the method add(Component, Object) instead.
c'est peut être pour ça que ça plante avec le show
ci-joint code
import javax.swing.JFrame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.*;
public class InterfaceMenu
extends JFrame
implements ActionListener {
private PanneauVert panneauVert;
private PanneauJaune panneauJaune;
private CardLayout cl;
public InterfaceMenu(String titre) {
super(titre);
cl = new CardLayout();
this.getContentPane().setLayout(cl);
this.getContentPane().setBackground(Color.red);
panneauVert = new PanneauVert();
this.getContentPane().add(panneauVert, "Paneau vert");
panneauJaune = new PanneauJaune();
this.getContentPane().add(panneauJaune, "Paneau jaune");
panneauVert.bouton1.addActionListener(this);
panneauJaune.bouton1.addActionListener(this);
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == panneauVert.bouton1) {
cl.next(this.getContentPane());
}
if (e.getSource() == panneauJaune.bouton1) {
cl.first(this.getContentPane());
}
}
class PanneauVert
extends JPanel {
protected JButton bouton1;
public PanneauVert() {
this.setBackground(Color.green);
bouton1 = new JButton("Jaune");
this.add("North", bouton1);
this.setVisible(true);
}
}
class PanneauJaune
extends JPanel {
protected JButton bouton1;
public PanneauJaune() {
this.setBackground(Color.yellow);
bouton1 = new JButton("Vert");
this.add("South", bouton1);
this.setVisible(true);
}
}
}
Ben ce sont 3 class distincte mais g mal fai mon copier coller donc il manque des parenthese. Dans la class InterfaceMenu g mi une méthode main dans laquel j'instancie la class InterfaceMenu. voila, merci si tu arrive a débugger.
++
++
Salu et merci en effet cela marche de cette maniere mais il est aussi possible d'utiliser la méthode show qui peut etre plus pratique si l'on veut accéder a n'importe quelle panneau en fait. La g que 2 panneau donc c simple et on peut utiliser next et previous mais si l'on a 10 panneau, et que l'on veu accéder a un panneau qui ne se trouve pa desuite apré le panneau courant il faut utiliser la méthode show.
Mon probleme vient du fait je pense que j'utilise panneauVert.getName() et que cette méthode, je pense, ne retourne pas la bonne valeur. Il me faudrai une méthode qui me permette de retourné la chaine "Panneau Vert". Si tu trouve des info la dessus sa serai cool, je continue de cherché moi merci en tou k
Mon probleme vient du fait je pense que j'utilise panneauVert.getName() et que cette méthode, je pense, ne retourne pas la bonne valeur. Il me faudrai une méthode qui me permette de retourné la chaine "Panneau Vert". Si tu trouve des info la dessus sa serai cool, je continue de cherché moi merci en tou k
ouep david
bon jviens de trouver pkoi ça planter ton code
quand tu fais ça:
this.getContentPane().add(panneauVert,"Panneau Vert");
tu n'associe pas de nom à panneauVert donc le panneauVert.getName() retourne rien ce qui explique que ça plante!!
donc voici la solution:
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;
public class InterfaceMenu
extends JFrame
implements ActionListener {
private PanneauVert panneauVert;
private PanneauJaune panneauJaune;
private CardLayout cl;
public InterfaceMenu(String titre) {
super(titre);
panneauVert = new PanneauVert();
panneauVert.setName("pv");
panneauJaune = new PanneauJaune();
panneauJaune.setName("pj");
cl = new CardLayout();
this.getContentPane().setLayout(cl);
this.getContentPane().setBackground(Color.red);
this.getContentPane().add(panneauVert,panneauVert.getName());
this.getContentPane().add(panneauJaune,panneauJaune.getName());
panneauVert.bouton1.addActionListener(this);
panneauJaune.bouton1.addActionListener(this);
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == panneauVert.bouton1) {
cl.show(this.getContentPane(),panneauJaune.getName());
}
if (e.getSource() == panneauJaune.bouton1) {
cl.show(this.getContentPane(),panneauVert.getName());
}
}
class PanneauVert
extends JPanel {
protected JButton bouton1;
public PanneauVert() {
this.setBackground(Color.green);
bouton1 = new JButton("Jaune");
this.add(bouton1);
this.setVisible(true);
}
}
class PanneauJaune
extends JPanel {
protected JButton bouton1;
public PanneauJaune() {
this.setBackground(Color.yellow);
bouton1 = new JButton("Vert");
this.add(bouton1);
this.setVisible(true);
}
}
}
voila et la tu n'auras plus aucun problème ;)
ciao
bon jviens de trouver pkoi ça planter ton code
quand tu fais ça:
this.getContentPane().add(panneauVert,"Panneau Vert");
tu n'associe pas de nom à panneauVert donc le panneauVert.getName() retourne rien ce qui explique que ça plante!!
donc voici la solution:
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;
public class InterfaceMenu
extends JFrame
implements ActionListener {
private PanneauVert panneauVert;
private PanneauJaune panneauJaune;
private CardLayout cl;
public InterfaceMenu(String titre) {
super(titre);
panneauVert = new PanneauVert();
panneauVert.setName("pv");
panneauJaune = new PanneauJaune();
panneauJaune.setName("pj");
cl = new CardLayout();
this.getContentPane().setLayout(cl);
this.getContentPane().setBackground(Color.red);
this.getContentPane().add(panneauVert,panneauVert.getName());
this.getContentPane().add(panneauJaune,panneauJaune.getName());
panneauVert.bouton1.addActionListener(this);
panneauJaune.bouton1.addActionListener(this);
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == panneauVert.bouton1) {
cl.show(this.getContentPane(),panneauJaune.getName());
}
if (e.getSource() == panneauJaune.bouton1) {
cl.show(this.getContentPane(),panneauVert.getName());
}
}
class PanneauVert
extends JPanel {
protected JButton bouton1;
public PanneauVert() {
this.setBackground(Color.green);
bouton1 = new JButton("Jaune");
this.add(bouton1);
this.setVisible(true);
}
}
class PanneauJaune
extends JPanel {
protected JButton bouton1;
public PanneauJaune() {
this.setBackground(Color.yellow);
bouton1 = new JButton("Vert");
this.add(bouton1);
this.setVisible(true);
}
}
}
voila et la tu n'auras plus aucun problème ;)
ciao
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
31 mai 2005 à 14:21
31 mai 2005 à 14:21
tu peux aussi modifier / surcharger le constructeur de Paneauvert en permettant de choisir le nom en argument.
oui oci
du moment que tu nommes tes panneaux à un endroit que ce soit lors de leur création ou pas!
allez ciao bon courage
nb: met le statut du message comme résolu ;)
du moment que tu nommes tes panneaux à un endroit que ce soit lors de leur création ou pas!
allez ciao bon courage
nb: met le statut du message comme résolu ;)