【问题标题】:Access values in JTextfield from another class从另一个类访问 JTextfield 中的值
【发布时间】:2011-10-21 02:17:51
【问题描述】:

如果有问题,有人可以检查我的代码,因为当我调用 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
}

注意:此时我只想看看它是否能够从登录页面获取输入,这就是为什么我的代码所做的只是打印输入的用户名。

【问题讨论】:

  • 请参阅我的回答中的Edit 2关于您最近的编辑。

标签: java swing user-interface textfield


【解决方案1】:

是的,出了点问题:您使用了static。 Getter 方法应该是实例方法,因此不应该涉及静态。

我经常看到这类代码的另一个问题是什么时候你试图提取文本?它是事件驱动的并且仅在将文本添加到 JTextField 之后调用 吗?或者当用户还没有机会输入文本时,您是否尝试在程序启动时调用此方法?很难说这是否会影响到您,因为我们对您的代码和问题的了解有限。

另一个并不少见的问题是试图从阴影对象中提取信息,而不是从当前显示的实际对象中提取信息。您的第二个代码窗口表明这可能是一个问题,因为您在尝试从中提取信息之前立即创建了一个日志对象。这可能是第二个日志对象,根本无法显示。

要查看这些问题是否对您有影响,或者您是否需要更多或更深入的建议,您可能希望显示更多代码。

编辑 2
关于您最近的编辑,如果日志是模式对话框,您的代码可以工作,但仍然很难说,因为您添加的代码为我们提供了一些信息,但仍然不够。不要灰心,因为有一种艺术可以决定在这里发布的信息/代码不足、信息充足还是信息过多。通过练习,你会在这方面做得更好。

【讨论】:

  • 是的,我正在尝试提取文本。我的程序应该做的是用户登录并在登录后显示他的帐户详细信息。这就是为什么我要尝试提取用户名,以便我将使用该用户名来验证要从数据库中显示哪个配置文件
  • @user1006328:为了进一步帮助您,我认为我们需要了解更多。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2013-01-08
  • 2012-05-18
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多