import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.TextField; import javafx.scene.text.Text; import java.sql.*; import javafx.collections.FXCollections; public class SearchAction implements EventHandler { private Text status; private TextField field; private PreparedStatement statement; private ObservableList marks = FXCollections.observableArrayList(); public SearchAction(Connection connection, Text status, TextField field) throws SQLException { this.statement = connection.prepareStatement( "SELECT english, german, math FROM marks WHERE name LIKE ?" ); this.status = status; this.field = field; } public void handle(ActionEvent action) { try { this.statement.setString(1, this.field.getText()); this.statement.execute(); var results = this.statement.getResultSet(); this.marks.clear(); if (results.next()) { this.marks.add(new Mark("Englisch", results.getInt(1))); this.marks.add(new Mark("Deutsch", results.getInt(2))); this.marks.add(new Mark("Mathematik", results.getInt(3))); } } catch (Exception exception) { this.status.setText(exception.getMessage()); } } public ObservableList getMarks() { return this.marks; } }