Доступ к значениям в JTextfield из другого класса - PullRequest
1 голос
/ 21 октября 2011

Может ли кто-нибудь проверить мой код, если что-то не так, потому что когда я вызываю метод 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
}

примечание: на данный момент я просто хочу посмотреть, сможет ли она получить информацию со страницы входа в систему, котораяпочему мой код просто печатает введенное имя пользователя.

1 Ответ

1 голос
/ 21 октября 2011

Да, что-то не так: вы используете static . Методы геттера должны быть методами экземпляра, и поэтому не должно быть никакой статики.

Другая проблема, с которой я часто сталкиваюсь при таком коде, это , когда вы пытаетесь извлечь текст? Он управляется событиями и вызывается только после добавления текста в JTextField? Или вы пытаетесь вызвать этот метод при запуске программы, когда у пользователя еще не было возможности ввести текст? Трудно сказать, повлияет ли это на вас, поскольку у нас ограниченное представление о вашем коде и проблеме.

Другая проблема, которая не является редкостью, заключается в попытке извлечь информацию из теневого объекта, а не из реального объекта, который отображается в данный момент. Ваше второе окно кода предполагает, что это может быть проблемой, поскольку вы создаете объект журнала непосредственно перед тем, как пытаться извлечь из него информацию. Это может быть второй объект журнала и может вообще не отображаться.

Чтобы узнать, влияет ли какая-либо из этих проблем на вас, или вам нужен более подробный совет, вы можете показать больше кода.

Редактировать 2
Что касается вашего недавнего редактирования, ваш код может работать, если log - модальное диалоговое окно, но все же сложно сказать, так как добавленный код дает нам некоторую информацию, но все же недостаточно. Не падайте духом, так как существует умение решать, что недостаточно информации / кода для размещения здесь: достаточно информации или слишком много информации. Вы научитесь лучше с практикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...