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

Composants Java Discussion :

[JTextField] ne renvoie rien, bizarre?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut [JTextField] ne renvoie rien, bizarre?
    bonsoir,

    j'ai une erreur de ce type la concernant mon appli et cela l'empeche de fonctionner:
    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
    Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
    	at modeles.Fenetre.<init>(Fenetre.java:35)
    	at modeles.Fenetre.createAndShowGUI(Fenetre.java:123)
    	at modeles.Fenetre.access$0(Fenetre.java:117)
    	at modeles.Fenetre$1.run(Fenetre.java:136)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.lang.NullPointerException
    	at modeles.Fenetre.getLogin(Fenetre.java:142)
    	at modeles.Fenetre.<init>(Fenetre.java:56)
    	at ado.ADO.<clinit>(ADO.java:31)
    	... 12 more
    j'utilise 2 classe :
    classe DAO:
    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
     
     
    package ado;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import modeles.Fenetre;
     
     
    public class ADO {
     
    	public ADO(Connection connection, String login, String password) {
    		super();
    		this.connection = connection;
    		this.login = login;
    		this.password = password;
    	}
    	public ADO() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	private static final String DRIVER = "org.apache.derby.jdbc.ClientDriver";
    	private static final String URL = "jdbc:derby://localhost:1527/Diabetomedical";
    	private static final String USER = ";user=derby";
    	private static final String PWD = ";password=derby";
    	private Connection connection;
    	private String login;
    	private String password;
    	private static Fenetre fen = new Fenetre();
    	//private Ecouteur eco;
     
    	public void connexion(){
    		try{
    		Class.forName(DRIVER);
    		connection = DriverManager.getConnection(URL+USER+PWD);
    		System.out.println("Démarrer et prêt à accepter les connexions");
    		}catch(ClassNotFoundException e){e.printStackTrace();
    		}catch(SQLException ex){ex.printStackTrace();}
     
    	}
    	public void deconnexion(){
    		try {
    			connection.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	public void consultation(){
    		//Statement stmt;
            //ResultSet result;
            try {
            	Statement stmt = connection.createStatement();
                ResultSet rs = stmt.executeQuery( "SELECT * FROM connexion" );
                //ResultSet rs1 = stmt.executeQuery("SELECT COUNT(*) FROM connexion where login='" + fen.getLogin() + "' and password='" + fen.getPassword()+ "'");
                    while (rs.next() ) {
                        //int numColumns = rs.getMetaData().getColumnCount();
                    	//System.out.println("rs1"+rs);
                    	System.out.println("login: "+fen.getLogin());
                    	System.out.println("password: "+fen.getPassword());
                    	System.out.println("rs1.getObject"+rs.getObject(2));
                        //peut causer probleme car il peut rechercher dans toutes les colonnes des ligne de connexion les infos fournies
                        if(rs.getObject(2).equals(fen.getLogin()) && rs.getObject(3).equals(fen.getPassword())){
                        	System.out.println("apres");
                        	fen.OngletAccueil();
     
     
                        	//eco = new Ecouteur(3);
                        	//break;
                        }
                      /* for ( int i = 1; i <= numColumns; i++ ) {
                           //Column numbers start at 1.
                           //Also there are many methods on the result set to return
                           // the column as a particular type. Refer to the Sun documentation
                           // for the list of valid conversions.
                           System.out.println( "COLUMN " + i + " = " + rs.getObject(i) );
                        }*/
                    }
                deconnexion();
            } catch(SQLException e) {
                e.printStackTrace();
            }
     
     
    	}
     
     
     
    	}
    et le main compris dans la classe 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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
     
    package modeles;
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
     
    import ado.ADO;
     
     
     
    @SuppressWarnings("serial")
    public class Fenetre extends JPanel implements ActionListener{
     
    	private JPanel jpa1, jpa2, jpa3, jpa4, jpa5;
    	private JLabel jla1, jla2;
    	private JTextField login;
    	private JPasswordField password;
    	private JTabbedPane jtp;
    	private JButton bvalider, b1, b2, b3, b4, b5;
    	private ImageIcon icon, icon1, icon2, icon3;
     
    	private ADO ado = new ADO();
     
    	public Fenetre() {
    		super(new BorderLayout());
     
    		jtp = new JTabbedPane(JTabbedPane.TOP);
    		icon = createImage("/connect.png");
    		icon1 = createImage("/application_home.png");
    		icon2 = createImage("/add.png");
    		icon3 = createImage("/chart_line_add.png");
     
     
    		//JComponent p1 = makeTextPanel("Connexion");
    		//jtp.setMnemonicAt(1, KeyEvent.VK_1);
     
    		jpa1 = new JPanel();
    		jpa1.setLayout(new GridLayout(2,2));
     
    		//Onglet Connexion:
    		jpa2 = new JPanel();
    		jpa2.setLayout(new FlowLayout());
    		jla1 = new JLabel("Login: "+getLogin());
    		jla2 = new JLabel("Password: ");
    		login = new JTextField(10);
    		password = new JPasswordField(10);
    		bvalider = new JButton("Submit");
    		jpa1.add(jla1);
    		jpa1.add(login);
    		jpa1.add(jla2);
    		jpa1.add(password);
    		jpa2.add(jpa1);
    		jpa2.add(bvalider);
     
    		//p1.add(jpa2);
    		jtp.addTab("Connexion", icon,jpa2);
     
    		//Onglet Accueil:
    		jpa3 = new JPanel();
    		jpa3.setLayout(new FlowLayout());
    		b1 = new JButton("Ajout d'un Patient");
    		b2 = new JButton("Suivi d'un patient");
    		b3 = new JButton("Liste des patients");
    		b4 = new JButton("Etat des patients");
    		b5 = new JButton("Recherche d'un patient");
     
     
     
     
    		bvalider.addActionListener(this);
    		login.addActionListener(this);
    		password.addActionListener(this);
     
     
    		//add the tabbedpane to this panel
    		add(jtp);
     
    		//the following line enables to use scrolling tabs
    		jtp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
     
    	}
    	protected JComponent makeTextPanel(String text) {
    		JPanel panel = new JPanel(false);
    		JLabel filler = new JLabel(text);
    		filler.setHorizontalAlignment(JLabel.CENTER);
    		panel.setLayout(new GridLayout(1, 1));
    		panel.add(filler);
    		return panel;
    	}
    	/** Returns an ImageIcon or null if the path was invalid.*/
    	protected static ImageIcon createImage(String path) {
    		java.net.URL imgURL = Fenetre.class.getResource(path);
    		if(imgURL != null){
    			return new ImageIcon(imgURL);
    		}else{
    		System.err.println("couldn't find file: "+path);
    		return null;
    	}
    	}
    	/**Create the GUI and show it. For thread safety.
             * this method should be invoked from
             * the event dispatch thread.
             */
    	private static void createAndShowGUI(){
    		//create and set up the window
    		JFrame frame = new JFrame("DiabetoMédical");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		//Add content ti the window.
    		frame.add(new Fenetre(), BorderLayout.CENTER);
     
    		//Display the window
    		frame.pack();
    		frame.setVisible(true);
    	}
    	public static void main(String[] args) {
            //Schedule a job for the event dispatch thread:
            //creating and showing this application's GUI.
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    //Turn off metal's use of bold fonts
    		UIManager.put("swing.boldMetal", Boolean.FALSE);
    		createAndShowGUI();
                }
            });
        }
     
    	public String getLogin(){
    		String log = login.getSelectedText();
    		return log;
    	}
    	public String getPassword(){
    		return password.getSelectedText();
    	}
    	public void OngletAccueil(){
    		//JComponent p2 = makeTextPanel("Accueil");
    		jtp.addTab("Accueil",icon1,jpa3);
    	}
    	public void OngletAjoutPatient(){
    		JComponent p3 = makeTextPanel("Ajout d'un patient");
    		jtp.addTab("Ajout d'un patient",icon2, p3);
    	}
    	public void OngletAjoutSuiviPatient(){
    		JComponent p4 = makeTextPanel("Suivi Patient");
    		jtp.addTab("Suivi Patient",icon3, p4);
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		Object source = e.getSource();
     
    		if(bvalider ==source){
    			ado.connexion();
    			ado.consultation();
    			ado.deconnexion();
    		}	
    	}
     
    }
    En faite, ca marchait avant et la plus rien . Quelqu'un a t-il une idée ?
    merci

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Il semble que ton JTextField login ne soit jamais créé (à mon avis il devrait l'être dans ton constructeur avec tes autres composants graphiques). Donc quand tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String log = login.getSelectedText();
    tu as un NullPointerException car login vaut null.

    En espérant t'aider.

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    oui voila c'est ca sauf que je ne sais pas pourquoi il me met null.

    Donc ce que je fait c'est que je l'ai retirer de mon Label "jla1 = new JLabel("Login: ");"
    et la mon application tourne.
    Seulement, j'ai besoin de cette méthode pour la methode consultation de ma classe ADO qui va chercher le login dans ma base de donnée.
    Donc j'ai fait des syso pour voir ce que contient getLogin(); elle renvoit toujours null de meme que le password:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Démarrer et prêt à accepter les connexions
    login: null
    password: null
    rs1.getObjectadmin
    Donc comment récupérer ce que je saisi dans mes 2 JTextField?

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Au vu de ton code il y a une autre erreur. Tu fais des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String log = login.getSelectedText();
    mais la méthode getSelectedText renvoi le texte sélectionné dans le champs et non tout le texte. Je pense que tu devrais utiliser la méthode getText (idem pour ton champs password).

  5. #5
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut JTextField ne renvoyant rien, bizarre?
    non plus : j'ai mit ce que tu m'as dit a savoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public String getLogin(){
    		return login.getText();
    	}
    	public String getPassword(){
    		return password.getText();
    	}
    ca me renvoie rien maintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Démarrer et prêt à accepter les connexions
    login: 
    password: 
    rs1.getObjectadmin

  6. #6
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    quelqu'un a une idée svp ?

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

Discussions similaires

  1. Fonction qui ne renvoie rien
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 18h12
  2. [PostgreSql] requête simple qui ne renvoie rien ?
    Par tuxout dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/08/2006, 14h06
  3. fonction php qui ne me renvoie rien
    Par renaudjuif dans le forum Langage
    Réponses: 10
    Dernier message: 01/08/2006, 10h27
  4. Ma requête ne me renvoie rien
    Par dessinateurttuyen dans le forum Langage SQL
    Réponses: 8
    Dernier message: 24/07/2006, 17h42
  5. [SQL-Server] mssql_query ne renvoie rien !
    Par Sophy75 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 06/04/2006, 10h59

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