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

Interfaces Graphiques en Java Discussion :

Problème d'ajout dans mon interface


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut Problème d'ajout dans mon interface
    Bonjour, dans mon travail de fin d'année je me retrouve coincé.
    Je vous expose le problème, et mettrai les sources après.

    J'ai pour faire simple une interface de login pour me connecter à une base de données Access au lancement de mon application, une fois le login effectué et vérifié, ma jolie interface devrait s'en aller pour laisser place à la fenêtre principale de mon application, fenêtre dans laquelle il y aura la barre de menu, et dans laquelle auront lieu les différentes opérations.

    Mon problème réside dans le fait que lorsque je fais appel à ma fenêtre d'application principale si j'ajoute la barre de menu dedans, j'ai une erreur à l'exécution.

    Je pense comprendre l'erreur, qui réside dans le fait, que comme ma page de login elle le container et qu'elle ne fait que recevoir une JPanel dedans, il faudrait que le barre de menu soit incorporée dans la classe de Login.

    Bon pas très clair mais difficile à expliquer, vous verrez peut être mieux avec les sources.

    D'avance merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    package tfe;
     
    import java.sql.*;
    import javax.swing.*;
     
    	public class Principal 
    	{
    		public static void main(String args[])
    		{	
    			new Logon();
    		}
    	}
    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
    package tfe;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.sql.*;
     
    public class Logon extends JFrame{
     
    	private Container contain;
    	private windowAppli fenetre;
    	private JPanel panHaut, panBas, panGauche, panDroit;
    	private ImageIcon logo = new ImageIcon("images\\logo.png");
    	private JButton butExit, butLogin;
    	private JLabel labBdd, labMdp, labLogo;
    	private JTextField nomBddField;
    	private JPasswordField passField;
    	private static Connection connect;
     
    	public Logon(){
    		contain = getContentPane();
    		this.setLayout(null);
    		setBounds(0,0,1280,800);
    		this.setResizable(false);
    		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		this.setTitle("<<< Application de maintenance informatique >>>");
     
    		panHaut = new JPanel();
    	    panBas = new JPanel();
    		panGauche = new JPanel();
    		panDroit = new JPanel();
     
    		panHaut.setBackground(Color.decode("#00309C"));
    		panBas.setBackground(Color.decode("#00309C"));
    		panGauche.setBackground(Color.decode("#5A7EDC"));
    		panDroit.setBackground(Color.decode("#5A7EDC"));
     
    		panHaut.setBounds(0,0,1280,100);
    		panBas.setBounds(0,670,1280,100);
    		panGauche.setBounds(0,100,640,570);
    		panDroit.setBounds(640,100,640,570);
     
    		contain.add(panHaut);
    		contain.add(panBas);
    		contain.add(panGauche);
    		contain.add(panDroit);
     
    		panDroit.setLayout(null);
    		panBas.setLayout(null);
     
    		labLogo = new JLabel(logo);
    		panGauche.add(labLogo);
     
    		labBdd = new JLabel("Base de données  ");
    		labBdd.setBounds(50,200,150,30);
    		panDroit.add(labBdd);
    		nomBddField = new JTextField("IntervMaint", 20);
    		nomBddField.setEditable(false);
    		nomBddField.setBounds(180,200,150,30);
    		panDroit.add (nomBddField);
     
    		labMdp = new JLabel("Mot de passe  ");
    		labMdp.setBounds(50,250,150,30);
    		panDroit.add(labMdp);
    		passField = new JPasswordField("test", 20);
    		passField.setBounds(180,250,150,30);
    		panDroit.add(passField);
     
    		butLogin = new JButton("Login");
    		butLogin.setBounds(340,250,150,30);
    		panDroit.add(butLogin);
     
    		butExit = new JButton("Exit");
    		butExit.setBounds(50,35,60,35);
    		panBas.add(butExit);
     
    		this.setVisible(true);
     
    		//Ajout d'un écouteur d'événement sur la fenêtre
    		//*************************************************************************
    		this.addWindowListener(new WindowAdapter(){
     
    			public void windowClosing(WindowEvent evt){
    				int choix = JOptionPane.showConfirmDialog(contain,"Voulez vous vraiment quitter l'application ?",
    						"Quitter l'application ?", JOptionPane.YES_NO_OPTION);
    				if (choix == JOptionPane.YES_OPTION) {
    					JOptionPane.showMessageDialog(null,"Merci d'avoir utilisé notre application, à bientôt !","Aurevoir !",	JOptionPane.INFORMATION_MESSAGE);
    					System.exit(0);} 
    				else {
    					JOptionPane.showMessageDialog(null,"Continuons à utiliser l'application dans ce cas","Utilisation de l'application",JOptionPane.INFORMATION_MESSAGE);
    				}
    			}
    		});
     
    		//Ajout d'un écouteur d'événement sur le menu
    		//*************************************************************************
     
    		ButtonListener bL = new ButtonListener();
    		butExit.addActionListener(bL);
    		butLogin.addActionListener(bL);
    		nomBddField.addActionListener(bL);
    		passField. addActionListener(bL);
     
    	}
     
    	private class ButtonListener implements ActionListener{
    		public void actionPerformed (ActionEvent evt){
     
    			String nomBDD;
    			String pass;
     
    			if (evt.getSource()==nomBddField){// Permet de taper 'Enter' pour passer au champ suivant
    				passField.requestFocus();
    			}
     
    			if (evt.getSource() == butLogin || evt.getSource() == passField) {
    				nomBDD = nomBddField.getText();
    				pass = new String(passField.getPassword());
    				try {
    					connect = AccesGen.connecter(nomBDD, " ", pass);
    					JOptionPane.showMessageDialog(null,"Vous êtes bien connecté à la base de données "
    							+ nomBDD, "Connecté",JOptionPane.INFORMATION_MESSAGE);
    					contain.removeAll();
    					contain.setLayout(new BorderLayout());
    					fenetre = new windowAppli(Logon.this);
    					contain.add(fenetre, BorderLayout.CENTER);
    					contain.repaint();
    					Logon.this.setVisible(true);
    					} 
     
    				catch (SQLException e) {
    					JOptionPane.showMessageDialog(null, e,
    							"Erreur de connexion", JOptionPane.ERROR_MESSAGE);
    					}
    			}
     
    			if (evt.getSource() == butExit) {
    				int choix = JOptionPane.showConfirmDialog(contain,"Voulez vous vraiment quitter l'application ?",
    						"Quitter l'application ?", JOptionPane.YES_NO_OPTION);
    				if (choix == JOptionPane.YES_OPTION) {
    					JOptionPane.showMessageDialog(null,"Merci d'avoir utilisé notre application, à bientôt !","Aurevoir !",	JOptionPane.INFORMATION_MESSAGE);
    					System.exit(0);
    				} 
    				else{
    					JOptionPane.showMessageDialog(null,"Continuons à utiliser l'application dans ce cas","Utilisation de l'application",JOptionPane.INFORMATION_MESSAGE);
    				}
    			}
    		}
    	}
    }
    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
    package tfe;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    import java.sql.*;
     
    public class windowAppli extends JPanel {
     
    	private Logon fenetre;
    	private JMenuBar menuBarre;
     
     
    	public windowAppli(Logon fenetre){
    		this.fenetre=fenetre;
    		fenetre.setTitle("test");
    		this.add(menuBarre);
    	}
     
    	public JMenuBar getMenuBarre() {
    		return menuBarre;
    	}
     
    }

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    On verrait surtout mieux si tu nous donnais l'erreur que tu obtiens à l'exécution

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Voilou l'erreur, en fait j'ai l'impression que l'erreur vient du fait que comme windowAppli extends JPanel, je ne peux pas ajouter la menuBarre dans cette fenêtre.

    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
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at java.awt.Container.addImpl(Unknown Source)
    	at java.awt.Container.add(Unknown Source)
    	at tfe.windowAppli.<init>(windowAppli.java:18)
    	at tfe.Logon$ButtonListener.actionPerformed(Logon.java:125)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(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)

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    C'est assez logique, tu ajoutes menuBarre dans windowAppli alors que tu n'as jamais initialisé menuBarre

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

Discussions similaires

  1. Problème d'insertion d'images dans mon interface graphique
    Par nini_python dans le forum Tkinter
    Réponses: 8
    Dernier message: 03/08/2012, 19h59
  2. Problème Automate dans mon interface
    Par taitai83 dans le forum Général Java
    Réponses: 0
    Dernier message: 15/10/2009, 09h53
  3. problèmes dans mon interface + créer rectangle
    Par artragis dans le forum Débuter
    Réponses: 2
    Dernier message: 31/10/2008, 10h20
  4. [MySQL] problème dans mon interface admin
    Par ni.co dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/05/2008, 11h41
  5. Réponses: 2
    Dernier message: 02/06/2005, 10h21

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