package ProjetLisa; import java.awt.*; import javax.swing.*; import java.awt.event.*; import static ProjetLisa.Lisa.*; public class MenuPrincipale extends JPanel implements ActionListener, KeyListener { //Tout les composants private JLabel connexion = new JLabel("LISA"); private JLabel erreur1 = new JLabel("Veuillez entrer vos identifiants"); private JPanel p1 = new JPanel(); // Conteneur principale //Composants de p1 private JLabel id = new JLabel("Identifiant :"); private JLabel mdp = new JLabel("Mot de passe :"); private JTextField fID = new JTextField("", 15); private JTextField fMDP = new JPasswordField("", 15); private JCheckBox resterConnecte = new JCheckBox("Rester connecté ?"); private JButton Bconnexion = new JButton("Connexion"); private FlowLayout p1Layout = new FlowLayout(50, 10, 20); private FlowLayout thisLayout = new FlowLayout(50, 40, 20); private static int erreur = 0; /** * Constructeur du menu de connexion */ public MenuPrincipale() { setLayout(thisLayout); connexion.setPreferredSize(new Dimension(300, 75)); connexion.setHorizontalAlignment(JLabel.CENTER); connexion.setVerticalAlignment(JLabel.CENTER); connexion.setFont(new Font(Font.DIALOG_INPUT, Font.PLAIN, 50)); add(connexion); // Ajout du label connexion en titre // Maj de la check box resterConnecte resterConnecte.setBackground(new Color(174, 37, 115)); resterConnecte.setPreferredSize(new Dimension(200, 20)); resterConnecte.setHorizontalAlignment(JCheckBox.RIGHT); //Maj de P1 p1.setPreferredSize(new Dimension(300, 180)); // Taille de p1 p1.setBackground(new Color(174, 37, 115)); // Couleur de p1 p1Layout.setAlignment(FlowLayout.RIGHT); // Mise a niveau du layout pour p1 p1.setLayout(p1Layout); // Layout de p1 p1.setBounds(5, 5, (int) p1.getSize().getWidth() - 10, (int) p1.getSize().getHeight() - 10); //Adds sur p1 p1.add(id); // Ajout du label id p1.add(fID); // Ajout du textField id p1.add(mdp); // Ajout du label mdp p1.add(fMDP); // Ajout du textField mdp p1.add(resterConnecte); p1.add(Bconnexion); // Ajout du bouton de connexion fID.addKeyListener(this); fMDP.addKeyListener(this); resterConnecte.addKeyListener(this); Bconnexion.addKeyListener(this); resterConnecte.setCursor(new Cursor(Cursor.HAND_CURSOR)); Bconnexion.setCursor(new Cursor(Cursor.HAND_CURSOR)); Bconnexion.addActionListener(this); // Ajout d'un actionListener sur le bouton de connexion add(p1); // Erreur = Aucun pseudo entre if (erreur == 1) { erreur1.setFont(new Font(Font.DIALOG, Font.BOLD, 15)); erreur1.setForeground(Color.red); erreur1.setPreferredSize(new Dimension(300, 20)); erreur1.setHorizontalAlignment(JLabel.CENTER); add(erreur1); } } /** * * @param e */ @Override public void actionPerformed(ActionEvent e) { // Il n'y a pas de mise en scene pour la verificaiton du mot de passe Constante.ID = fID.getText(); if (Constante.ID.equals("")) { erreur = 1; projet.setNiveau(MenuDeConnexion); } else { // Si la checkBox est coche, le programme enregistre le pseudo dans un fichier if (resterConnecte.isSelected()) { new Constante().changeID(fID.getText()); } else { new Constante().changeID(""); } // Passage au calendrier Lisa.projet.setNiveau(Lisa.Calendrier); } } /** * @param e */ @Override public void keyPressed(KeyEvent e) { // Si on appuie sur entrer, le bouton de connexion s'active => actionPerformed() if (e.getKeyCode() == KeyEvent.VK_ENTER && (e.getSource() == fID || e.getSource() == fMDP || e.getSource() == Bconnexion)) { Bconnexion.doClick(); } else if (e.getKeyCode() == KeyEvent.VK_ENTER && e.getSource() == resterConnecte) { resterConnecte.doClick(); } } /** * * @param e */ @Override public void keyTyped(KeyEvent e) { } /** * * @param e */ @Override public void keyReleased(KeyEvent e) { } }