summaryrefslogtreecommitdiff
path: root/Java-Kompendium/kap17/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'Java-Kompendium/kap17/src/main')
-rw-r--r--Java-Kompendium/kap17/src/main/java/ButtonAnzeigen.java83
-rw-r--r--Java-Kompendium/kap17/src/main/java/ButtonEntfernen.java89
-rw-r--r--Java-Kompendium/kap17/src/main/java/ButtonGehalt.java107
-rw-r--r--Java-Kompendium/kap17/src/main/java/ButtonHinzufuegen.java119
-rw-r--r--Java-Kompendium/kap17/src/main/java/Hauptfenster.java104
-rw-r--r--Java-Kompendium/kap17/src/main/java/Hinweis.java39
6 files changed, 541 insertions, 0 deletions
diff --git a/Java-Kompendium/kap17/src/main/java/ButtonAnzeigen.java b/Java-Kompendium/kap17/src/main/java/ButtonAnzeigen.java
new file mode 100644
index 0000000..5dff7da
--- /dev/null
+++ b/Java-Kompendium/kap17/src/main/java/ButtonAnzeigen.java
@@ -0,0 +1,83 @@
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.geometry.Insets;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.ScrollPane;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Font;
+import javafx.scene.text.FontWeight;
+import javafx.scene.text.Text;
+import javafx.stage.Stage;
+import javafx.stage.Modality;
+import java.sql.*;
+
+public class ButtonAnzeigen extends Button {
+ public ButtonAnzeigen(String text) {
+ super(text);
+ }
+
+ public void neuesFenster(Stage hauptfenster) {
+ String host = "jdbc:hsqldb:mem:mitarbeiter";
+ String inhalt = "";
+
+ try {
+ Connection verbindung = DriverManager.getConnection(host);
+ Statement befehl = verbindung.createStatement();
+
+ String SQL = "SELECT * FROM Mitarbeiter";
+ ResultSet rs = befehl.executeQuery(SQL);
+ int zaehler = 0;
+ while (rs.next()) {
+ zaehler++;
+ inhalt += "Personalnummer: " + rs.getString("persnr") + "\n";
+ inhalt += "Nachname: " + rs.getString("name") + "\n";
+ inhalt += "Vorname: " + rs.getString("vorname") + "\n";
+ inhalt += "Gehalt: " + rs.getString("gehalt") + "\n\n";
+ }
+ if (zaehler == 0) {
+ inhalt = "Keine Mitarbeiter vorhanden.";
+ }
+ } catch (SQLException err) {
+ inhalt = err.getMessage();
+ }
+ VBox vbox = new VBox();
+ Text titel = new Text("Ihr Personal:\n");
+ titel.setFont(Font.font("Arial", FontWeight.NORMAL, 14));
+ vbox.getChildren().add(titel);
+ Text ausgabe = new Text(inhalt);
+ vbox.getChildren().add(ausgabe);
+
+ ScrollPane scrollPane = new ScrollPane(vbox);
+ scrollPane.setFitToWidth(true);
+ scrollPane.setPadding(new Insets(10));
+
+ BorderPane root = new BorderPane(scrollPane);
+ root.setPadding(new Insets(30));
+
+ Button btn = new Button("OK");
+ btn.setPadding(new Insets(5));
+ VBox vbox2 = new VBox();
+ vbox2.getChildren().add(btn);
+ vbox2.setPadding(new Insets(0, 0, 0, 0));
+ root.setBottom(vbox2);
+
+ Stage neuesFenster = new Stage();
+ neuesFenster.setTitle("Personal anzeigen");
+ neuesFenster.initModality(Modality.WINDOW_MODAL);
+ neuesFenster.initOwner(hauptfenster);
+ neuesFenster.setX(hauptfenster.getX() + 50);
+ neuesFenster.setY(hauptfenster.getY() + 50);
+ Scene scene = new Scene(root, 400, 300);
+ neuesFenster.setScene(scene);
+ neuesFenster.show();
+
+ btn.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ neuesFenster.close();
+ }
+ });
+ }
+}
diff --git a/Java-Kompendium/kap17/src/main/java/ButtonEntfernen.java b/Java-Kompendium/kap17/src/main/java/ButtonEntfernen.java
new file mode 100644
index 0000000..702b516
--- /dev/null
+++ b/Java-Kompendium/kap17/src/main/java/ButtonEntfernen.java
@@ -0,0 +1,89 @@
+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<ActionEvent>() {
+ @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());
+ }
+ }
+ }
+ });
+ }
+}
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());
+ }
+ }
+ }
+ });
+ }
+}
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());
+ }
+ }
+ }
+ });
+ }
+}
diff --git a/Java-Kompendium/kap17/src/main/java/Hauptfenster.java b/Java-Kompendium/kap17/src/main/java/Hauptfenster.java
new file mode 100644
index 0000000..48839e5
--- /dev/null
+++ b/Java-Kompendium/kap17/src/main/java/Hauptfenster.java
@@ -0,0 +1,104 @@
+import java.sql.*;
+
+import javafx.application.Application;
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.geometry.HPos;
+import javafx.geometry.Insets;
+import javafx.geometry.Pos;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.layout.GridPane;
+import javafx.scene.text.Font;
+import javafx.scene.text.FontWeight;
+import javafx.scene.text.Text;
+import javafx.stage.Stage;
+
+public class Hauptfenster extends Application {
+ @Override
+ public void start(Stage stage) throws SQLException {
+ String host = "jdbc:hsqldb:mem:mitarbeiter";
+
+ Connection verbindung = DriverManager.getConnection(host);
+ Statement befehl = verbindung.createStatement();
+ String SQL = """
+ CREATE TABLE Mitarbeiter (
+ persnr INTEGER Primary Key Not Null,
+ name VARCHAR(30),
+ vorname VARCHAR(30),
+ gehalt DECIMAL(9,2)
+ )
+ """;
+ befehl.executeUpdate(SQL);
+
+ GridPane grid = new GridPane();
+ grid.setAlignment(Pos.CENTER);
+ grid.setHgap(30);
+ grid.setVgap(50);
+ grid.setPadding(new Insets(20, 20, 20, 20));
+ stage.setTitle("Personalverwaltung");
+ Text titel = new Text("Wählen Sie eine Aktion aus:");
+ titel.setFont(Font.font("Arial", FontWeight.BOLD, 14));
+ grid.add(titel, 0, 0, 2, 1);
+
+ ButtonHinzufuegen btn1 = new ButtonHinzufuegen("Mitarbeiter hinzufügen");
+ grid.add(btn1, 0, 1);
+ btn1.setPrefSize(200, 50);
+
+ ButtonEntfernen btn2 = new ButtonEntfernen("Mitarbeiter entfernen");
+ grid.add(btn2, 1, 1);
+ btn2.setPrefSize(200, 50);
+
+ ButtonGehalt btn3 = new ButtonGehalt("Gehalt anpassen");
+ grid.add(btn3, 0, 2);
+ btn3.setPrefSize(200, 50);
+
+ ButtonAnzeigen btn4 = new ButtonAnzeigen("Personal anzeigen");
+ grid.add(btn4, 1, 2);
+ btn4.setPrefSize(200, 50);
+
+ Button btn5 = new Button("OK");
+ grid.add(btn5, 0, 3, 2, 1);
+ btn5.setPrefSize(100, 20);
+ GridPane.setHalignment(btn5, HPos.CENTER);
+
+ btn1.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ btn1.neuesFenster(stage);
+ }
+ });
+ btn2.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ btn2.neuesFenster(stage);
+ }
+ });
+ btn3.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ btn3.neuesFenster(stage);
+ }
+ });
+ btn4.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ btn4.neuesFenster(stage);
+ }
+ });
+ btn5.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ stage.close();
+ }
+ });
+
+ Scene scene = new Scene(grid, 600, 400);
+ stage.setScene(scene);
+ stage.show();
+ }
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+}
diff --git a/Java-Kompendium/kap17/src/main/java/Hinweis.java b/Java-Kompendium/kap17/src/main/java/Hinweis.java
new file mode 100644
index 0000000..0cf2766
--- /dev/null
+++ b/Java-Kompendium/kap17/src/main/java/Hinweis.java
@@ -0,0 +1,39 @@
+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.layout.GridPane;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+
+public class Hinweis {
+ public static void ausgeben(Stage fenster, String text) {
+ 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, 300, 200);
+ Label label = new Label(text);
+ Button btn = new Button("OK");
+ grid.add(label, 0, 0);
+ grid.add(btn, 0, 1);
+ Stage hinweisfenster = new Stage();
+ hinweisfenster.initModality(Modality.WINDOW_MODAL);
+ hinweisfenster.initOwner(fenster);
+ hinweisfenster.setX(fenster.getX() + 30);
+ hinweisfenster.setY(fenster.getY() + 30);
+ hinweisfenster.setScene(scene);
+ hinweisfenster.show();
+ btn.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent e) {
+ hinweisfenster.close();
+ }
+ });
+ }
+}