diff options
Diffstat (limited to 'Java-Kompendium/kap17/src/main/java/ButtonHinzufuegen.java')
| -rw-r--r-- | Java-Kompendium/kap17/src/main/java/ButtonHinzufuegen.java | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/Java-Kompendium/kap17/src/main/java/ButtonHinzufuegen.java b/Java-Kompendium/kap17/src/main/java/ButtonHinzufuegen.java new file mode 100644 index 0000000..9034bec --- /dev/null +++ b/Java-Kompendium/kap17/src/main/java/ButtonHinzufuegen.java @@ -0,0 +1,119 @@ +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<ActionEvent>() { + @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()); + } + } + } + }); + } +} |
