neojack | 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 :
- package tfe;
- import java.sql.*;
- import javax.swing.*;
- public class Principal
- {
- public static void main(String args[])
- {
- new Logon();
- }
- }
|
Code :
- 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 :
- 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;
- }
- }
|
|