如果有问题,有人可以检查我的代码,因为当我调用getter方法时它什么也没显示。不知怎的,它不存储我试图使用的文本字段的输入。
以下是一些代码:
来自A组的登录按钮
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("1"+getuser());
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/devweb", "root", "123456");
PreparedStatement statement = con.prepareStatement("select User,pwd from account");
ResultSet rs = statement.executeQuery();
name = user.getText();
String pwd = jTextField2.getText();
while (rs.next()) {
if (rs.getString("User").equals(name) && rs.getString("pwd").equals(pwd)) {
result now = new result();
now.res();
dispose();
System.out.println("2"+getuser());
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
然后是B类的视图按钮:
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
log qwe=new log();
jTextField1.setText(qwe.getuser());
System.out.println(qwe.getuser());//when I print this it just says null
}
注意:此时我只想查看它是否能够从登录页面获取输入,这就是为什么我的代码只是打印输入的用户名。
答案 0 :(得分:1)
是的,出了点问题:你使用 static 。 Getter方法应该是实例方法,因此不应该涉及静态。
我经常看到这个代码的另一个问题是当你试图提取文本时?它是事件驱动的,只有在将文本添加到JTextField之后才会调用吗?或者,当用户还没有机会输入文本时,您是否尝试在程序启动时调用此方法?很难说这是否会影响你,因为我们对你的代码和问题只有有限的看法。
另一个并不罕见的问题是尝试从阴影对象中提取信息,而不是当前正在显示的实际对象。您的第二个代码窗口表明这可能是一个问题,因为您在尝试从中提取信息之前立即创建了一个日志对象。这可能是第二个日志对象,根本无法显示。
要查看这些问题是否会影响您,或者您是否需要更多或更深入的建议,您可能希望显示更多代码。
编辑2
关于你最近的编辑,如果log是一个模态对话框,你的代码可以工作,但仍然很难说,因为你添加的代码给了我们一些信息,但仍然不够。不要因为有一种艺术来决定什么是没有足够的信息/代码发布在这里与足够的信息与太多的信息相比,不要灰心。通过练习你会更好。