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

Applets Java Discussion :

Problème null pointer applet interne


Sujet :

Applets Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Points : 100
    Points
    100
    Par défaut Problème null pointer applet interne
    Bonjour,
    J ' essaie de modifier mon programme(Chat client/serveur) pour en faire une applet interne( avant je l ' utilisais en tant qu ' applet externe , c ' est a dire un fichier html qui demarrait mon interface graphique sans l incorporer au navigateur)pour l ' integrer dans mon navigateur internet. Je rencontre cependant un null pointer lorsque j essaie d envoyer la liste des connectés et j ' arrive pas a voir d ' ou il peut provenir.


    Mon programme était conçu comme ceci avant( et ca fonctionnait niquel)

    classe ServeurChat

    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
    public class ServeurChat extends JApplet  {
     
     
    	public void init(){
     
     
    		FenetreServeur f;
    		try {
    			f = new FenetreServeur ("Chat");
    			while(true){
     
    				BufferedReader in;
    			    in=f.getIn();
    				f.recevoir();
     
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		}
    }
     
    	}
    classe ChatServeur(comprend les elements graphiques)

    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
    public ChatServeur(FenetreServeur f, LoginServeur l)throws IOException{
    		super();
    		fene=f;
    		log=l;
    	    Socket s; 
     
     
    	    s = new Socket( ip,serveur.getPort() );
    		in = new BufferedReader( new InputStreamReader(s.getInputStream()));
    	    out = new PrintStream( s.getOutputStream());
     
    	    this.setLayout(null);	
    		this.setSize(new Dimension(600, 400));
     
    		//p2.setLayout(null);
     
    		imageM=new JLabel(new ImageIcon("../LOGO.jpg"));
    		imageM.setBackground(Color.LIGHT_GRAY);
     
    		saisie.setBounds(new Rectangle(17, 243, 382, 20));
     
    		envoyer=new JButton("Envoyer");
     
    		effacer=new JButton("Vider");
    		kick=new JButton("Kicker");
    		deconnexion= new JButton("Deconnexion");
     
     
    		li=new List();
    		affichage.setEditable(false);
    		affichage.setBounds(new Rectangle(14, 10, 385, 220));
    		affichage.setBackground(Color.WHITE);
    		li.setBounds(new Rectangle(414, 14, 154, 117));
    		envoyer.setBounds(new Rectangle(15, 290, 88, 30));
    		effacer.setBounds(new Rectangle(125, 290, 88, 30));
    		deconnexion.setBounds(new Rectangle(345, 290, 115, 30));
    		kick.setBounds(new Rectangle(235, 290, 88, 30));
    		imageM.setBounds(new Rectangle(415, 148, 156, 81));
    		EcouteurServeur ecenvoyer=new EcouteurServeur(2,f,l,this);
    		EcouteurServeur ecenvoyerClav=new EcouteurServeur(8,f,l,this);
    		EcouteurServeur ecefface=new EcouteurServeur(3,f,l,this);
    		EcouteurServeur eckick=new EcouteurServeur(5,f,l,this);
    		EcouteurServeur ecdeco=new EcouteurServeur(6,f,l,this);
    		saisie.addKeyListener(ecenvoyerClav);
    		effacer.addActionListener(ecefface);
    		envoyer.addActionListener(ecenvoyer);
     
    		kick.addActionListener(eckick);
    		deconnexion.addActionListener(ecdeco);
    		li.addActionListener(new EcouteurServeur(1,f,l,this));
     
     
    		this.add(affichage);
    		this.add(li);
     
    		this.add(imageM);
    		this.add(envoyer);
    		this.add(effacer);
    		this.add(deconnexion);
    		this.add(kick);
    		this.add(saisie);
     
    		//Submit.addKeyListener(ecenvoyer);
    	}
    classe fenetre(qui etend JFrame car j en ai besoin pour ma classe Login qui utilise un JDialog)

    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
    public class FenetreServeur extends JFrame{
    	private ChatServeur ch;
    	private LoginServeur log;
     
     
    	public FenetreServeur (String s)throws IOException{
    		super(s);
     
     
    		ch = new ChatServeur(this,log);
     
     
    		this.add(ch,BorderLayout.CENTER);
    		this.setLocationRelativeTo(null);
    		this.setSize(new Dimension(600, 400));
    		this.setLayout(null);	
    		this.setResizable(false);
    		this.setVisible(true);
    		//hote= new Hote(this);
    		log=new LoginServeur(this);
     
    		this.addWindowListener(new EcouteurServeur(7,this,log,ch));
    		this.setTitle(log.titrelogin());
    	}
    En faisant de la sorte , ca fonctionne sans probleme,mais c est dans une applet externe..
    Si j essaie dans une interne en modifiant ma classe Chat de la sorte

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    public class ChatServeur extends JApplet{
     
     
    	public ChatServeur() throws HeadlessException {
    		super();
    		// TODO Auto-generated constructor stub
    	}
     
    	private TextField saisie=new TextField(25);
    	private TextArea affichage=new TextArea(15,45);;
    	private BufferedReader in;
    	private PrintStream out;
     
    	private FenetreServeur fene;
    	private LoginServeur log;
    	private JPanel panel = new JPanel();
    	private Serveur serveur=new Serveur();
    	private List li;
    	private JLabel imageM;
    	private JButton envoyer;
    	private JButton effacer;
    	private JButton kick;
    	private JButton deconnexion;
    	private String imagePath = "E:/Mes documents/workspace/Chat Serveur/ressources/background1.jpg";
    	//private java.awt.Container cp;
    	private final static String ip = "localhost";
     
     
    	public ChatServeur(FenetreServeur f,LoginServeur l)throws IOException{
    		super();
    		fene=f;
    		log=l;
    	    Socket s; 
     
     
    	    try {
    			s = new Socket(ip,serveur.getPort());
    			in = new BufferedReader( new InputStreamReader(s.getInputStream()));
    		    out = new PrintStream( s.getOutputStream());
    		} catch (UnknownHostException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}
     
     
    		try {
     			fene = new FenetreServeur ();
     			while(true){
     
     				BufferedReader in;
     			    in=fene.getIn();
     				fene.recevoir();
     
     			}
     		} catch (IOException e) {
     			// TODO Auto-generated catch block
     			e.printStackTrace();
     		}
     
     
     
    	}
    	    public void init(){
     
     
     
     
    		//p2.setLayout(null);
    	    log=new LoginServeur(fene);
     
    		imageM=new JLabel(new ImageIcon("../ressources/LOGO.jpg"));
    		imageM.setBackground(Color.LIGHT_GRAY);
     
    		saisie.setBounds(new Rectangle(17, 243, 382, 20));
     
    		envoyer=new JButton("Envoyer");
     
    		effacer=new JButton("Vider");
    		kick=new JButton("Kicker");
    		deconnexion= new JButton("Deconnexion");
     
     
    		li=new List();
    		affichage.setEditable(false);
    		affichage.setBounds(new Rectangle(14, 10, 385, 220));
    		affichage.setBackground(Color.WHITE);
    		//affichage.setRows(10);
    		li.setBounds(new Rectangle(414, 14, 154, 117));
    		envoyer.setBounds(new Rectangle(15, 290, 88, 30));
    		effacer.setBounds(new Rectangle(125, 290, 88, 30));
    		deconnexion.setBounds(new Rectangle(345, 290, 115, 30));
    		kick.setBounds(new Rectangle(235, 290, 88, 30));
    		imageM.setBounds(new Rectangle(415, 148, 156, 81));
    		EcouteurServeur ecenvoyer=new EcouteurServeur(2,fene,log,this);
    		EcouteurServeur ecenvoyerClav=new EcouteurServeur(8,fene,log,this);
    		EcouteurServeur ecefface=new EcouteurServeur(3,fene,log,this);
    		EcouteurServeur eckick=new EcouteurServeur(5,fene,log,this);
    		EcouteurServeur ecdeco=new EcouteurServeur(6,fene,log,this);
    		saisie.addKeyListener(ecenvoyerClav);
    		effacer.addActionListener(ecefface);
    		envoyer.addActionListener(ecenvoyer);
     
    		kick.addActionListener(eckick);
    		deconnexion.addActionListener(ecdeco);
    		li.addActionListener(new EcouteurServeur(1,fene,log,this));
     
     
    		this.add(affichage);
    		this.add(li);
     
    		this.add(imageM);
    		this.add(envoyer);
    		this.add(effacer);
    		this.add(deconnexion);
    		this.add(kick);
    		this.add(saisie);
     
     
     		this.setVisible(true);
    	    this.setLayout(null);	
    		this.setSize(new Dimension(600, 400));
    		//Submit.addKeyListener(ecenvoyer);
    	}
    ca me met un null pointer dans ma classe login(comme si il ne reconnaissait plus mon instance de fenetre)

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
     
    public  LoginServeur (FenetreServeur fen){
     
    	super(fen , "Saisie du pseudo et du mot de passe", true);
     
     
    	fene=fen;
    	labLogin =new Label("Saisissez votre pseudo: ");
    	labPass =new Label("Saisissez votre mot de passe");
    	saisieLogin=new TextField(20);
    	saisiePass=new JPasswordField(14);
     
    	panelLoginMdp.setLayout(new FlowLayout());
    	panelLoginMdp.add(labLogin);
    	panelLoginMdp.add(saisieLogin);
    	panelLoginMdp.add(labPass);
    	panelLoginMdp.add(saisiePass);
     
     
    	this.add(panelLoginMdp);
     
     
    	Button valider;
    	valider=new Button("valider");
    	Button quit;
    	quit=new Button("quitter");
    	EcouteurServeur ecvalider;
    	ecvalider=new EcouteurServeur(4,fen,this,null);
    	valider.addActionListener(ecvalider);
    	EcouteurServeur ecquit;
    	ecquit=new EcouteurServeur(9,fen,this,null);
    	quit.addActionListener(ecquit);
    	Panel p1;
    	p1=new Panel(new FlowLayout());
    	p1.add(valider);
    	p1.add(quit);
    	this.add(p1,BorderLayout.SOUTH);
    	this.setLocationRelativeTo(null);
    	this.setSize(dimension);
    	this.setResizable(false);
     
    	this.addWindowListener(new EcouteurServeur(7,fen,this,null));
    	this.setVisible(true);
     
     
     
    	}
     
     
     
    public ResultSet comparerLogin() throws SQLException
    	{
    		String resultat= null;
    		String resultatPass= null;
    		String s;
     
    		String url=null;
     
    		  String  login = "admin";
    		 String password = "admin";
     
    			try
    			{
    			InetAddress thisIp = InetAddress.getLocalHost();
    			String adresseIP=thisIp.getHostAddress();
    			System.out.println(adresseIP);
    			url="jdbc:mysql://localhost/chatdb";
     
    			}
    			catch(UnknownHostException e)
    			{
    			e.printStackTrace();
    			}
     
    		try {
     
    			Class.forName("com.mysql.jdbc.Driver");
    			 cn = (Connection) DriverManager.getConnection(url, login, password);
    			 st = (Statement) cn.createStatement();
     
    			} catch (ClassNotFoundException e) {
     
    				e.printStackTrace();
    				 System.out.println("pb connexion");
    			}
    			 ResultSet resultatLogin=st.executeQuery("Select login,mdp from user where login = \""+ saisieLogin.getText() +"\"and mdp=\""+ new String(saisiePass.getPassword())+"\"");
     
    			 while(resultatLogin.next()){
    				 resultat=resultatLogin.getString("login");
    				 resultatPass=resultatLogin.getString("mdp");
    				 System.out.println(resultat);
    				 System.out.println(resultatPass);
    			 }
    			 if(saisieLogin.getText().equals(resultat) && new String(saisiePass.getPassword()).equals(resultatPass)){
    				 System.out.println("c bon");
     
    				 JOptionPane.showMessageDialog(null,"Bienvenue "+saisieLogin.getText() , ""+saisieLogin.getText() , JOptionPane.INFORMATION_MESSAGE);
    				 this.setVisible(false);
    					s=this.recuplogin();
    					System.out.println(s);
    					fene.envoielogin(s);//  null pointer ici
     
    			 }
    			 else 
    				 {
    				 System.out.println("c pa bon");
     
    				 loginPOK();
    				 }
    		return resultatLogin;
    			}}

    Je vous remercie beaucoup si vous consentez a m aider car c ' est la derniere etape avant que je valide mon projet( ca fait 2 j que je suis bloque dessus)

    Merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Points : 100
    Points
    100
    Par défaut
    resolu

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

Discussions similaires

  1. Problème : Null Pointer Exception
    Par chrozak dans le forum Android
    Réponses: 3
    Dernier message: 09/09/2014, 11h16
  2. Problème null Pointer DAO SQL
    Par linuxien_62 dans le forum Persistance des données
    Réponses: 5
    Dernier message: 15/04/2013, 21h32
  3. Problème Null Pointer Exception
    Par bitter00 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 18/08/2011, 13h04
  4. [EJB3] [JBoss] Problème null pointer
    Par MattA184575 dans le forum Java EE
    Réponses: 2
    Dernier message: 08/01/2009, 19h22
  5. [JMS] problème de Null Pointer Exception
    Par fafoula dans le forum Glassfish et Payara
    Réponses: 14
    Dernier message: 28/09/2007, 15h32

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