bonjour,j'aimerais utiliser ma variable login info dans ma classe login sachant que login info est une HashMap et qu'elle est située dans la classe ID
Classe login :
package registerlogin;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class login implements ActionListener{
public static void main(String[] args) {
JFrame f = new JFrame("Register Login");
Color cyan = new Color(50,147,168);
Color buttoncolor = new Color(184, 237, 242);
JPanel p = new JPanel();
p.setBackground(cyan);
JLabel id = new JLabel("<html> <font color = #b8edf2> your Name : </font><html>");
id.setBounds(50,100,100,25);
JLabel password = new JLabel("<html> <font color = #b8edf2> your Password : </font><html>");
password.setBounds(50,150,100,25);
JLabel bv = new JLabel("Bienvenue !");
bv.setFont(new Font("Serif", Font.BOLD, 30));
bv.setBounds(50,35,150,25);
JLabel oui = new JLabel("oui");
oui.setBounds(350,190,100,50);
JTextField idJT = new JTextField();
idJT.setBounds(150,100,150,25);
JPasswordField passwordJT = new JPasswordField();
passwordJT.setBounds(150,150,150,25);
JButton clean = new JButton("<html> <font color = #3293a8> Clean </font><html>");
clean.setBounds(325,115,150,50);
clean.setFocusable(false);
clean.setBackground(buttoncolor);
//clean.addActionListener(this);
JButton login = new JButton("<html> <font color = #3293a8> Login </font><html>");
login.setBounds(150,200,150,35);
login.setFocusable(false);
login.setBackground(buttoncolor);
JButton register = new JButton("<html> <font color = #3293a8> register </font><html>");
register.setBounds(250,35,150,35);
register.setFocusable(false);
register.setBackground(buttoncolor);
f.setContentPane(p);
p.add(id);
p.add(password);
p.add(bv);
p.add(idJT);
p.add(passwordJT);
p.add(clean);
p.add(login);
p.add(register);
p.add(oui);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(550,300);
f.setLayout(null);
f.setVisible(true);
f.setLocationRelativeTo(null);
f.setIconImage(new ImageIcon("src/images/logineclipse.png").getImage());
clean.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
idJT.setText("");
passwordJT.setText("");
login.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String userID = idJT.getText();
String password = String.valueOf(passwordJT.getPassword());
}
});
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
Dans la classe ID :
package registerlogin;
import java.util.HashMap;
public class ID {
HashMap<String,String> logininfo = new HashMap<String,String>();
ID(){
logininfo.put("admin","test");
}
@SuppressWarnings("rawtypes")
protected HashMap getlogininfo() {
return logininfo;
}
}
Dans la classe Main :
package registerlogin;
public class Main {
@SuppressWarnings("unused")
public static void main(String[] args) {
ID ID = new ID();
login login = new login(ID.getlogininfo());
}
}
Merci de vos réponses !
en fait je veut utiliser le JButton login pour verifier si ce que la personne met dans le idJT correspond au logininfo et de meme pour passwordJT
Vu que tu passes la HashMap via constructeur, tu pourrais l'enregistrer dans une member variable au sein de la classe login quand tu instancies celle-ci :
public class login implements ActionListener{
Map<String, String> loginInfo;
public login(Map<String, String> loginInfo) {
this.loginInfo = loginInfo;
}
//...
Puis tu ajoutes un listener pour le bouton de login, similaire à celui du clean, sauf qu'à l'intérieur de son actionPerformed tu mets ton code de vérification du login.
Passer des collections mutables en getter c'est la porte ouverte aux side-effects, tout objet l'utilisant peut potentiellement en modifier le contenu, et c'est la foire aux bugs.
Il vaut mieux garder la map encapsulée, exposer une méthode dans ID (qui devrait s'appeler Id si on suit les conventions de nommage java), laquelle fera la vérif si le login/pass est ok.
bonjour, j'ai essayé de faire ce que m'a dit Scroph donc j'ai cré une zone de test pour tester donc mon ZoneDeTest serais mon login
et mon test1 serais mon ID doinc logiquement quand j'execute ca devrais afficher : "{admin1=test, admin2=test, admin=test}" ou quelque chose comme ça mais je ne comprend pas car ça m'affiche ca :"{admin1=test, admin2=test}"
ZoneDeTest :
package fr.zonedetest;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Map;
public class ZoneDeTest implements ActionListener {
Map<String, String> logininfo;
public ZoneDeTest(Map<String,String> logininfo) {
this.logininfo = logininfo;
}
public static void main(String[] args) {
test1.logininfo.put("admin1", "test");
test1.logininfo.put("admin2", "test");
System.out.println(test1.logininfo);
}
}
mon test1 :
package fr.zonedetest;
import java.util.HashMap;
public class test1 {
public static HashMap<String,String> logininfo = new HashMap<String,String>();
test1(){
logininfo.put("admin","test");
}
@SuppressWarnings("rawtypes")
protected HashMap getlogininfo() {
return logininfo;
}
}
et mon code de verification du login resemblerais a ça
je suis désolé je ne connais pas ce principe en me renseignant je vois que c'est de mettre des parenthèses autour d'un string mais je ne vois pas a quoi ça sert
L'encapsulation est l'un des principes majeurs de l'orienté objet, il consiste à masquer le contenu des objets de manière à garder le contrôle de ce contenu au sein de l'objet.
Idéalement, pour avoir un cheminement serein tu devrais commencer par suivre un cours de base sur le langage java, en te concentrant sur les applications en console.
Ensuite, te familiariser avec les concepts et bonnes pratiques de l'orienté objet.
Ensuite pratiquer pour t'entrainer.
Et enfin seulement, une fois à l'aise, te lancer dans la programmation fenêtrée.
Non je ne vois pas comment appeler une variable d'une classe a l'autre je suis peut etre un peut con donc je ne vois pas ça dans ton cours mais svp quelqu'un peut au moins me donner un exemple simple par exemple de comment appeler une une variable int chiffre = 12;
dans une autre classe ou un autre package merci a vous
tu n'es certainement pas con, par contre tu as juste cherché dans le cours une partie qui t'intéresse, à la différence d'un tutoriel, qui répond à un besoin précis, un cours se veut complet et doit être suivi comme tel, du début à la fin.
c'est bon merci j'ai trouvé dans le cours ce que je voulais
java utiliser le HashMap d'une classe à l'autre
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Un émulateur de Chip-8 en D
Writing a faster youtube downloader
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
Un émulateur de Chip-8 en D
Writing a faster youtube downloader
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl