diff options
Diffstat (limited to 'Java-Kompendium/kap17/src/main/java/ButtonGehalt.java')
| -rw-r--r-- | Java-Kompendium/kap17/src/main/java/ButtonGehalt.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/Java-Kompendium/kap17/src/main/java/ButtonGehalt.java b/Java-Kompendium/kap17/src/main/java/ButtonGehalt.java new file mode 100644 index 0000000..30cceba --- /dev/null +++ b/Java-Kompendium/kap17/src/main/java/ButtonGehalt.java @@ -0,0 +1,107 @@ +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 ButtonGehalt extends Button { + public ButtonGehalt(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 für die Gehaltsanpassung 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 gehalt = new Label("Gehalt:"); + grid.add(gehalt, 0, 4); + TextField eingabeGehalt = new TextField(); + grid.add(eingabeGehalt, 1, 4); + + Button btnEinf = new Button("Gehalt anpassen"); + grid.add(btnEinf, 0, 5); + neuesFenster.show(); + + btnEinf.setOnAction(new EventHandler<ActionEvent>() { + @Override + public void handle(ActionEvent e) { + int persnr = -1; + double gehalt = -1; + boolean richtigeEingabe = false; + + try { + 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); + var befehl = verbindung.prepareStatement( + "SELECT name FROM Mitarbeiter WHERE persnr = ?"); + + befehl.setInt(1, persnr); + ResultSet rs = befehl.executeQuery(); + int zaehler = 0; + while (rs.next()) { + zaehler++; + } + if (zaehler > 0) { + befehl = verbindung.prepareStatement( + "UPDATE Mitarbeiter SET gehalt = ? WHERE persnr = ?"); + befehl.setDouble(1, gehalt); + befehl.setInt(2, persnr); + befehl.executeUpdate(); + Hinweis.ausgeben(hauptfenster, "Gehalt erfolgreich angepasst."); + neuesFenster.close(); + } else { + Hinweis.ausgeben(hauptfenster, "Personalnummer nicht vorhanden"); + } + } catch (SQLException err) { + System.out.println(err.getMessage()); + } + } + } + }); + } +} |
