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 :

Pb Jpanel dans Applet


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut Pb Jpanel dans Applet
    Bonjour,
    J'ai un soucis qui est surement simple mais je n'ai pas trouvé de solutions dans les forums.
    J'ai crée une applet et une classe Control derivant d'un JPanel. J'insère des boutons dans ma class control et j'insere ma classe dans l'applet.
    Le problème est que quand je lance mon applet je n'ai pas de boutons qui apparaissent et ils n'apparaissent que si la souris passe dessus.
    En plus, j'ai dessiné une légende sur mon JPanel mais elle ne s'affiche pas du tout et les label non plus

    J'avais tout programmé en AWT et je veux passer en Swing. Je pense que le problème vient de là.

    Mon code simplifié :
    ma class control :
    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
     
    import java.awt.*;
    import java.io.*;
    import javax.swing.*;
     
    import java.awt.event.*;
     
    public class Control extends JPanel implements ActionListener 
    {
     
    	private interfaceapplet app;
    	private JButton test=null
    	private Label l=null;
     
    	public void paintComponent (Graphics g) 
    	{
    		dessin
    	}
    	public Control(interfaceapplet app)
    	{
     
    	    this.setSize(170, 600);
    	    this.app=app;
    	    this.setBackground(Color.gray); 
    	    this.setLayout(null);
    	    this.add(getBoutontest);
    	    this.add(getl);
     
     
    	}
     
    	private JButton getBoutontest() 
    	{
    		if (test == null) 
    		{
    			test=new JButton("Test");
    			test.setBounds(10,10,150,20);
    			changer_forme_regard.addActionListener(this);
     
     
    		}
    	    return test;
    	}
     
     
     
    	private JLabel getl() 
    	{
    		if (l == null) 
    		{
    			l=new JLabel("Légende");
    			legende.setBounds(10,400,150,20);
     
     
    		}
    	    return l;
    	}
     
    	public void actionPerformed(ActionEvent ae) 
    	{
    	    Object source = ae.getSource();
     
    		if(source==test)
    		{
    			fonctiontest();
    		}
     
    	}
     
    }
    Mon applet :
    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
     
    import java.awt.*;
    import javax.swing.*;
    import java.applet.*;
    import java.awt.event.*;
    import java.util.*;
     
     
     
    public class interfaceapplet extends JApplet 
    {
    	public void paint (Graphics g) 
    	{
    		dessin sur l'applet
    	}
     
    	public void init() 
    	{
    		setBackground(Color.white); 
    		setLayout(null);
    		this.setSize(800+170,650);
    		ctrl = new Control(this) ;
    		ctrl.setBounds(800,0,170,650);
    		add(ctrl);
    	}
     
     
    	public void start()
    	{
    		 this.requestFocus();
    	}
    	public void destroy() 
    	{
     
     
    	}
     
     
    	public static void main(String[] args) 
    	{
    		interfaceapplet ta=new interfaceapplet();
    		JFrame f=new JFrame("Dessin");
    		f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		f.add("Center",ta);
    		ta.init();
    		f.pack();
     
    		f.addWindowListener
    			(
    			new WindowAdapter()
    		{
    				public void windowClosing(WindowEvent e)
    				{
    					int rep=JOptionPane.showConfirmDialog(null,"Avez vous penser à sauvegarder?","QUITTER",JOptionPane.YES_NO_OPTION); 
    					if(rep == 0) System.exit(0); 
    				}
    		}
    			);
    		f.setSize(970,650);
    		f.setVisible(true);
    	}
     
    }
    Si quelqu'un a la solution.....

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 137
    Par défaut
    il y a un truc qui semble bizarre ....


    lorseu tu crées tes JButton tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     changer_forme_regard.addActionListener(this);

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Rien de bizarre à ça, sa classe implémente ActionListener

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 137
    Par défaut
    oui j'avais bien vu mais c'est quoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    changer_forme_regard
    ça n'apparait nulle part

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    correct

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    oups , c'est de ma faute. J'ai voulu simplifier mon code pour qu'il ne soit pas trop long.
    En fait, j'ai une quinzaine de bouton et j'ia voulu remplacer apr un seul que j'ai appelé test et j'ai oublié de changé le nom dans mon copier-coller. En fait c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    test.addActionListener(this);

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    J'ai progressé : dans ma classe applet, j'appelais la fonction paint au lieu de paintComponent. Maintenant, mon JPanel s'affiche mais je ne peux plus dessiner sur mon applet.

    Je cherche...... si quelqu'un voit d'où vient le problème.....

  8. #8
    Membre émérite Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Par défaut
    Dans ta surcharge paint() de interfaceapplet, fait un super.paint() et ca marchera.

    Fait le aussi dans paintComponent():
    tu rajoute super.paintComponent()

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    super, ca marche!!! Merci beaucoup
    Par contre, pourquoi ca marche, maintenant? Ca a changé quoi ce que tu m'a fait rajouter???

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    Comment on met le tag Résolu maintenant?????

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des changement de JPanel dans une applet
    Par le Daoud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 26/06/2006, 14h32
  2. Donner le focus à un JPanel dans un autre JPanel
    Par Azanael dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 21/06/2005, 23h34
  3. [Débutant] JPanel dans JScrollPane
    Par Nicolas_75 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 06/04/2005, 09h39
  4. Gestion de menu, JPanels dans une JFrame
    Par Doc.Fusion dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2004, 18h27
  5. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43

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