我有一个Jframe类,它有一个登录名和密码字段。当登录时,我必须显示登录的人的信息,所以我必须从第一个Jframe检索他的登录以在另一个Jframe中进行治疗。 这是我做的,但登录在第二个jframe中返回NULL: 第一个Jframe(登录名和密码字段):
private void button_connectActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String x= loginField.getText();
String y= passwordField.getText();
AuthentificationDAO authDAO= new AuthentificationDAO();
boolean ok_login= authDAO.verify_login(x);
int pass= Integer.parseInt(y);
System.out.println("password retrieved"+pass);
boolean ok_pass=authDAO.verify_password(pass);
System.out.println("ok pass"+ok_pass);
if (ok_login & ok_pass)
{
System.out.println("Login found!");
Enseignant e= new Enseignant();
edu.app.persistence.Enseignant ens= new edu.app.persistence.Enseignant(x);
//ens.setLogin(x);
System.out.println("login SET:"+ens.getLogin());
e.setVisible(true);
this.setVisible(false);
}
else {
System.out.println("Login NOT found!");
JOptionPane.showMessageDialog(null, "Accourt NOT found. Please check your login or password.", "Check Login/Pass", 1);
}
将显示该登录信息的第二个Jframe:
private void mauvaisFieldFocusGained(java.awt.event.FocusEvent evt){
edu.app.persistence.Enseignant ens= new edu.app.persistence.Enseignant();
String login=ens.getLogin();
System.out.println("LOGIN EST:"+login);
StatsDAO stats= new StatsDAO();
int id=stats.get_id_from_login(login);
System.out.println("ID="+id);
}
请问如何解决这个问题? 非常感谢你。
答案 0 :(得分:1)
除非ens.login
为static
,否则此代码将无效。
您可以使用MVC
模式,也可以让第二个框架类扩展JFrame
,以便为其添加登录字段。
Sonething喜欢:
class1 {
class2 frame2 = new class2();
void login(){
String x = loginField.getText();
edu.app.persist.teach ens= new edu.app.persist.teach(x);
class2.setLogin(x);
}
}
class2 extends JFrame{
String login;
String getLogin(){..}
void setLogin(String s){..}
.
.
}
我使用了一种伪代码,但它应该足够清楚