Java: Помогите создать метод fillTextFields () - PullRequest
0 голосов
/ 16 мая 2010

У меня есть проект Java, в котором я должен подключиться к базе данных и создать кнопки (далее, новый, сохранить, удалить, предыдущий) для навигации по содержимому базы данных, где есть соответствующие текстовые поля и метки для конкретной информации.

Я буду использовать приведенный ниже код в качестве примера (каждая кнопка настроена очень похоже) ... У меня так:

JButton jbtnNext = new JButton("Next ->");
jbtnNext.addActionListener(this);
if (e.getSource() == jbtnNext) jbtnNext_Click();
private void jbtnNext_Click() {
    JOptionPane.showMessageDialog(null, "Next" ,"Button Pressed", 
        JOptionPane.INFORMATION_MESSAGE);

    try {
        if (rset.next()) {
            fillTextFields(true);
        }else{
            //Display result in a dialog box
            JOptionPane.showMessageDialog(null, "Not found");
    }
}
    catch (SQLException ex) {
        ex.printStackTrace();
    }

}

Профессор дал следующую схему логики для построения метода fillTextFields():

  1. Создайте метод для предоставления повторно используемого кода, который бы заполнял поля JTextFields в GUI соответствующими значениями из текущей записи из базы данных (при нажатии кнопок «Предыдущая» или «Далее») или пустыми значениями (когда новая кнопка нажата).

  2. Чтобы определить, когда текущая запись должна предоставлять значения (следующий и предыдущий) или значение будет пустым (новая кнопка), передайте логический аргумент в метод. Если данные из текущей записи должны были использоваться в качестве значений заполнения, передайте указатель истины как для предыдущего, так и для следующего кода кнопки после перемещения указателя записи. Если новая кнопка была нажата и вы хотите заполнить пустыми значениями, передайте false методу.

  3. Внутри метода используйте условное выражение для вычисления логической переменной. Если true, соответствующий метод набора результатов get ---- () используется для заполнения полей JTextFields. Если false, заполните их "".

  4. .SetText () метод JTextField используется для заполнения каждого JTextField.

  5. Убедитесь, что метод fillTextFields выдает соответствующее исключение.

Я понимаю, и предыдущий и следующий методы кнопок передают значение true, в то время как новый метод кнопки передает значение false, но я не совсем понимаю, как правильно настроить метод fillTextFields() или как «вызвать соответствующее исключение» "... Любая помощь будет очень признательна, спасибо!

Ответы [ 2 ]

1 голос
/ 16 мая 2010

Метод fillTextFields должен, как следует из названия, заполнять текстовые поля данными, полученными из базы данных. Я предполагаю, что rset является глобальной переменной, поэтому вы должны иметь возможность доступа к ней из других методов в том же классе.

Вы можете ознакомиться с этим руководством , чтобы получить представление о том, как использовать текстовые поля в Java.

В методе fillTextFields вы сначала проверяете, было ли передано логическое значение true или false, если оно true, вы извлекаете данные из набора результатов и используете .setText(textToPrint) чтобы показать данные, которые вы получили из базы данных.

Чтобы получить данные, вы можете сделать следующее:

rset.getString(1)

Вышеприведенное возвращает значение, сохраненное в 1-м столбце базы данных в виде строки. Вы можете прочитать JavaDoc , чтобы узнать, как возвращать различные типы.

Что касается создаваемого исключения, вы можете проверить ссылку на предоставленный JavaDoc, чтобы увидеть, какие методы выдают какие исключения.

1 голос
/ 16 мая 2010

Я не совсем понимаю, как правильно настроить метод fillTextFields() или как "выбросить соответствующее исключение" ..

Методы JDBC могут выдавать SQLException, когда взаимодействие с БД не удается. fillTextFields() не должен поймать его, а просто дать ему пройти. Он будет обработан в catch (SQLException e), который у вас уже есть в размещенном коде. Вам необходимо добавить предложение throws с этим исключением в метод fillTextFields(). Э.Г.

public void fillTextFields(boolean blank) throws SQLException {
    Connection connection = null;
    // ...

    try {
        connection = DriverManager.getConnection(url, username, password);
        // ...
    } finally {
        if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
        // ...
    }
}

См. Также учебник Sun по исключениям и учебник Sun JDBC .

...