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

AWT/Swing Java Discussion :

Lien entre JSplitPane et JPanel


Sujet :

AWT/Swing Java

  1. #21
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Citation Envoyé par Heaven54
    Une derniere petite question ,

    la methode

    public JPanel getPanel(int panelNumber){}

    je la met dans quelle class? logiquement dans MainGui
    C'est ça.


    Citation Envoyé par Heaven54
    mais alors comment vais-je faire pour ajouter les listener aux boutons.

    jbutton1.addActionListener(..?..);
    C'est encore ça. Tu ajoutes un ActionListener sur les boutons pourqu'il détectent le clic et c'est dans la méthode actionPerformed que tu vas lancer ton évènement (le "fireXXX()").


    Citation Envoyé par Heaven54
    aussi pour la methode fireChangePanel je l'appel ou
    Dans tes méthodes actionPerformed()


    Citation Envoyé par Heaven54
    parceque dans l'actionListener du bouton il me met une erreur.
    Il te met quoi comme erreur?

  2. #22
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Par défaut
    bon je te donne ici le code de ma classe Menu:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    import java.awt.*;
    import java.awt.event.*;
    import java.util.ArrayList;
    import javax.swing.*;
    
    public class Menu extends JPanel implements ActionListener{
    
    	private JButton quete;
    	private JButton perso;
    	private JButton invent;
    	private JButton map;
    	/*JFrame principale */
    	private MainGui Mg;	
    	
    	
    	
    	/*liste de mes listener*/
    	private ArrayList monListenerPersoList;
    
    	/*constructeur Menu*/
    	public Menu(MainGui gui) {
    		
    		Mg = gui;
    		
    		addMonListenerPerso(Mg);
    		
    		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
    
    		map = new JButton("Monde");
    		map.setMnemonic('m');
    		map.addActionListener(this);
    		quete = new JButton("Journal");
    		quete.setMnemonic('j');
    		quete.addActionListener(this);
    		invent = new JButton("Inventaire");
    		invent.setMnemonic('i');
    		invent.addActionListener(this);
    		perso = new JButton("Caractéristiques");
    		perso.setMnemonic('c');
    		perso.addActionListener(this);
    
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(map);
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(quete);
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(invent);
    		add(Box.createRigidArea(new Dimension(0, 25)));
    		add(perso);
    
    		setVisible(true);
    	}	
    	
    	public void actionPerformed(ActionEvent e){
    		
    		Object o = e.getSource();
    		
    		if(o==map){fireChangePanel(1);}
    		if(o==quete){fireChangePanel(2);}
    		if(o==invent){fireChangePanel(3);}
    		if(o==perso){}
    	}
    	
    	public void removeListener(MonListenerPerso list) {
    		monListenerPersoList.remove(list);
    	}
    
    	public void removeAllListeners() {
    		monListenerPersoList.clear();
    	}
    
    	public void addMonListenerPerso(MonListenerPerso list) {
    		if (!monListenerPersoList.contains(list)){
    			monListenerPersoList.add(list);		
    		}
    	}
    	
    	private void fireChangePanel(int panelNumber) {
    	     for (int i=0; i<monListenerPersoList.size(); i++){ 	          ((MonListenerPerso)monListenerPersoList.get(i)).updateRightPanel(panelNumber);
    	     }
    	}		
    }
    ainsi que le code de la class qui lance le tout.

    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
    20
    21
    22
    23
    24
    25
    26
    import javax.swing.*;
    
    public class JeuDeRole {
    
    	
    	
    	public static void main(String[] args)
    	{
    		
    		
    		WorldMap WMap = new WorldMap();
    		Fiche detailsPerso = new Fiche();
    		Quests quest = new Quests();
    		
    		MainGui mg = new MainGui(WMap,detailsPerso,quest);
    		
    		Menu menu = new Menu(mg);
    					
    		mg.splitPane.add(menu,JSplitPane.LEFT);
    		
    		WMap = new WorldMap();
    		mg.splitPane.add(WMap,JSplitPane.RIGHT);
    		
    	}
    }
    et voici l'erreur

    Exception in thread "main" java.lang.NullPointerException
    at Menu.addMonListenerPerso(Menu.java:73)
    at Menu.<init>(Menu.java:25)
    at JeuDeRole.main(JeuDeRole.java:19)
    Elle vient du fait que ma Liste est NULL

    private ArrayList monListenerPersoList;

    comment je fait pour l'instancier??

  3. #23
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Par défaut
    Ok ca va j'ai rien dit .

    Il m'a suffit de faire

    private ArrayList monListenerPersoList = new ArrayList();

    voila et sa marche .

    Un Grand merci à toi seiryujay et aux autres qui ont participées.

  4. #24
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Ben de la même manière que tu initialises tout objet java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monListenerPersoList = new ArrayList();


    (et tu fais ça dans le constructeur de Menu, juste après initialisation de Mg)

    PS : par convention, les noms de variables doivent commencer par une minuscule, contrairement aux noms de classes qui commencent par une majuscule...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/05/2004, 16h11
  2. Lien entre les vues 'Structure' et l'éditeur
    Par Tifauv' dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 13/05/2004, 16h06
  3. lien entre les table de paradox
    Par salim_intic1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 16h00
  4. Réponses: 3
    Dernier message: 11/04/2004, 01h05
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

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