Aller au contenu

consultation de boite mail


rihab

Messages recommandés

bonjour, je developpe un programme en java qui à pour role de consulter ma boite mail mais lors de l'éxecution j'ai l'erreur suivante:java.lang.NullPointerException

SVP tu peut m'expliquer où l'erreur exactement dans ce programme et comment on le corrige.Merci d'avance.

Le programme est le suivant:

import java.util.*;

import java.awt.*;

import java.util.*;

import javax.swing.*;

import javax.swing.border.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

//import java.sql.*;

public class Gpop extends JFrame

{

class PopMessage {

public String message;

private String title;

public PopMessage (String titleW, String msg)

{

title = titleW;

message = msg;

}

public String toString()

{

return title;

}

}

public class PopServerDialog extends JDialog

{

JTextField hostTF, portTF, userTF;

JPasswordField passwordTF;

public PopServerDialog(Frame parent, boolean modal)

{

super(parent, modal);

JPanel panel1, panel2, panel3;

JButton okButton, cancelButton;

Container contentPane = this.getContentPane();

panel1 = new JPanel();

panel1.setLayout(new FlowLayout(FlowLayout.CENTER));

contentPane.add(panel1, BorderLayout.SOUTH);

okButton = new JButton("OK");

panel1.add(okButton);

cancelButton = new JButton("Cancel");

panel1.add(cancelButton);

panel3 = new JPanel();

panel3.setLayout(new FlowLayout(FlowLayout.CENTER));

contentPane.add(panel3, BorderLayout.CENTER);

hostTF = new JTextField(popServer, 20);

portTF = new JTextField("" + port, 5);

panel3.add(new JLabel("Server"));

panel3.add(hostTF);

panel3.add(new JLabel("Port"));

panel3.add(portTF);

panel2 = new JPanel();

panel2.setLayout(new FlowLayout(FlowLayout.CENTER));

contentPane.add(panel2, BorderLayout.NORTH);

userTF = new JTextField(user, 20);

passwordTF = new JPasswordField(password, 10);

panel2.add(new JLabel("User"));

panel2.add(userTF);

panel2.add(new JLabel("Passwd"));

panel2.add(passwordTF);

setTitle("Pop Server info");

pack();

cancelButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event)

{

dispose();

setVisible(false);

}

});

okButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event)

{

popServer = hostTF.getText();

user = userTF.getText();

password = new String(passwordTF.getPassword());

port = Integer.parseInt(portTF.getText());

dispose();

setVisible(false);

}

});

}

}

private String popServer = "pop.gmail.com";

private String user = "fhhfjrjf" , password = "**********";

private int port =995;

private JLabel status = new JLabel("Ready...");

private JTextArea Jbody = new JTextArea(10,20);

private Vector messages = new Vector();

private JList msgList = new JList();

public Gpop ()

{

JMenuBar menuBar = new JMenuBar();

JPanel statusbar = new JPanel();

JPanel Core = new JPanel();

JScrollPane SPbody, SPlist;

Core.setLayout(new BorderLayout());

Container contentPane = this.getContentPane();

contentPane.setLayout(new BorderLayout());

setJMenuBar(menuBar);

JMenu fMenu = new JMenu("File");

menuBar.add(fMenu);

JMenuItem popServerItem = new JMenuItem("Set Pop Server", 2);

fMenu.add(popServerItem);

JMenuItem popMsgItem = new JMenuItem("Get Messages", 2);

fMenu.add(popMsgItem);

fMenu.addSeparator();

JMenuItem exitItem = new JMenuItem("Exit", 2);

fMenu.add(exitItem);

statusbar.setLayout(new FlowLayout(FlowLayout.LEFT,5,5));

statusbar.setBorder(new BevelBorder(BevelBorder.LOWERED));

contentPane.add(statusbar,BorderLayout.SOUTH );

statusbar.add(status);

SPbody = new JScrollPane(Jbody,

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,

JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

SPlist = new JScrollPane(msgList,

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,

JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

Core.add(SPlist, BorderLayout.WEST);

Core.add(SPbody, BorderLayout.EAST);

contentPane.add(Core);

// add listeners for the window and the various buttons

this.addWindowListener( new WindowAdapter(){

public void windowClosing(WindowEvent e){

setVisible(false);

dispose();

System.exit(0);

}});

exitItem.addActionListener( new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}});

popMsgItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

getMessages();

}});

popServerItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

changePopServer();

}});

msgList.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

int index = msgList.locationToIndex(e.getPoint());

if ( index >= 0 && index < messages.size())

Jbody.setText(((PopMessage)messages.elementAt(index)).message);

}

});

pack();

}

protected void getMessages()

{

PrintWriter to;

BufferedReader from;

String str,title, msg;

Vector v = new Vector();

try {

Socket socket = new Socket(InetAddress.getByName(popServer),port);

to = new PrintWriter(

new BufferedWriter (

new OutputStreamWriter (

socket.getOutputStream())),true);

from = new BufferedReader(

new InputStreamReader (

socket.getInputStream()));

while ( ! (from.readLine()).startsWith("+OK") );

to.println("USER "+user+"\r");

while ( ! (from.readLine()).startsWith("+OK") );

to.println("PASS "+password+"\r");

while ( ! (from.readLine()).startsWith("+OK") );

to.println("LIST\r");

while ( ! (from.readLine()).startsWith("+OK") );

do {

str = from.readLine();

if ( str.compareTo(".") != 0 ) v.add(str);

} while ( str.compareTo(".") != 0 );

for ( int i =0; i < v.size(); i++ ) {

title = (String ) v.elementAt(i);

to.println("RETR "+(new StringTokenizer(title)).nextToken()+"\r");

while ( ! (from.readLine()).startsWith("+OK") );

msg = "";

do {

msg += from.readLine() + "\n";

} while ( ! msg.endsWith("\n.\n") );

messages.add(new PopMessage(title, msg));

}

msgList.setListData(messages);

status.setText("Ready ...");

socket.close();

} catch ( Exception e ) {

System.err.println(e);}

}

protected void changePopServer()

{

new PopServerDialog(this, true).show();

}

public static void main ( String args[] )

{

(new Gpop()).setVisible(true);

}

}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...