import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.GridPane; import javafx.stage.Stage; import javafx.stage.Modality; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.text.Text; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import java.sql.*; public class ButtonEntfernen extends Button { public ButtonEntfernen(String text) { super(text); } public void neuesFenster(Stage hauptfenster) { GridPane grid = new GridPane(); grid.setAlignment(Pos.CENTER); grid.setHgap(10); grid.setVgap(10); grid.setPadding(new Insets(10, 10, 10, 10)); Scene scene = new Scene(grid, 400, 300); Stage neuesFenster = new Stage(); neuesFenster.setTitle("Mitarbeiter entfernen"); neuesFenster.setScene(scene); neuesFenster.initModality(Modality.WINDOW_MODAL); neuesFenster.initOwner(hauptfenster); neuesFenster.setX(hauptfenster.getX() + 50); neuesFenster.setY(hauptfenster.getY() + 50); Text titel = new Text("Geben Sie die Personalnummer des Mitarbeiters ein:"); titel.setFont(Font.font("Arial", FontWeight.NORMAL, 14)); grid.add(titel, 0, 0, 2, 1); Label persnr = new Label("Personalnummer:"); grid.add(persnr, 0, 1); TextField eingabePersnr = new TextField(); grid.add(eingabePersnr, 1, 1); Button btnEntf = new Button("Mitarbeiter entfernen"); grid.add(btnEntf, 0, 5); neuesFenster.show(); btnEntf.setOnAction(new EventHandler() { @Override public void handle(ActionEvent e) { int persnr = -1; boolean richtigeEingabe = false; try { persnr = Integer.parseInt(eingabePersnr.getText()); richtigeEingabe = true; } catch (NumberFormatException Ausnahme) { Hinweis.ausgeben(hauptfenster, "Fehlerhafte Eingabe"); } if (richtigeEingabe) { String host = "jdbc:hsqldb:mem:mitarbeiter"; try { Connection verbindung = DriverManager.getConnection(host); Statement befehl = verbindung.createStatement(); String SQL = "SELECT name FROM Mitarbeiter WHERE persnr = " + persnr; ResultSet rs = befehl.executeQuery(SQL); int zaehler = 0; while (rs.next()) { zaehler++; } if (zaehler > 0) { SQL = "DELETE FROM Mitarbeiter WHERE persnr = " + persnr; befehl.executeUpdate(SQL); Hinweis.ausgeben(hauptfenster, "Mitarbeiter erfolgreich entfernt."); neuesFenster.close(); } else { Hinweis.ausgeben(hauptfenster, "Personalnummer nicht vorhanden"); } } catch (SQLException err) { System.out.println(err.getMessage()); } } } }); } }