import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; 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.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Modality; import javafx.stage.Stage; public class ButtonHinzufuegen extends Button { public ButtonHinzufuegen(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 hinzufügen"); 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 Daten des neuen 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); Label nachname = new Label("Nachname:"); grid.add(nachname, 0, 2); TextField eingabeNachname = new TextField(); grid.add(eingabeNachname, 1, 2); Label vorname = new Label("Vorname:"); grid.add(vorname, 0, 3); TextField eingabeVorname = new TextField(); grid.add(eingabeVorname, 1, 3); Label gehalt = new Label("Gehalt:"); grid.add(gehalt, 0, 4); TextField eingabeGehalt = new TextField(); grid.add(eingabeGehalt, 1, 4); Button btnEinf = new Button("Mitarbeiter hinzufügen"); grid.add(btnEinf, 0, 5); neuesFenster.show(); btnEinf.setOnAction(new EventHandler() { @Override public void handle(ActionEvent e) { String vorname = ""; String nachname = ""; int persnr = -1; double gehalt = -1; boolean richtigeEingabe = false; try { vorname = eingabeVorname.getText(); nachname = eingabeNachname.getText(); persnr = Integer.parseInt(eingabePersnr.getText()); gehalt = Double.parseDouble(eingabeGehalt.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 = "INSERT INTO Mitarbeiter (persnr, name, vorname," + "gehalt) VALUES (" + persnr + ", '" + nachname + "', '" + vorname + "', " + gehalt + ")"; befehl.executeUpdate(SQL); Hinweis.ausgeben(hauptfenster, "Mitarbeiter erfolgreich hinzufgefügt."); neuesFenster.close(); } else { Hinweis.ausgeben(hauptfenster, "Personalnummer bereits vergeben"); } } catch (SQLException err) { System.out.println(err.getMessage()); } } } }); } }