diff options
Diffstat (limited to 'Java-Kompendium/kap17/src/main')
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(); + } + }); + } +} |
