921 lines
42 KiB
Java
921 lines
42 KiB
Java
package sample;
|
|
|
|
import javafx.application.Application;
|
|
import javafx.event.ActionEvent;
|
|
import javafx.event.EventHandler;
|
|
import javafx.geometry.Insets;
|
|
import javafx.geometry.Pos;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.*;
|
|
import javafx.scene.effect.DropShadow;
|
|
import javafx.scene.image.Image;
|
|
import javafx.scene.image.ImageView;
|
|
import javafx.scene.input.MouseEvent;
|
|
import javafx.scene.layout.*;
|
|
import javafx.scene.paint.Color;
|
|
import javafx.scene.shape.Circle;
|
|
import javafx.scene.shape.Rectangle;
|
|
import javafx.scene.text.Font;
|
|
import javafx.scene.text.Text;
|
|
import javafx.scene.text.TextAlignment;
|
|
import javafx.stage.Stage;
|
|
import java.sql.*;
|
|
|
|
public class Main extends Application {
|
|
|
|
// Datenbankkonstanten
|
|
// Datenbankname
|
|
public static final String db_name = "freunde.db";
|
|
|
|
// Tabellenname
|
|
public static final String table_freunde = "freunde";
|
|
|
|
// Connectionpfad
|
|
public static final String connection_string = "jdbc:sqlite:.\\" + db_name;
|
|
|
|
// Freund in Datenbank hinzufügen
|
|
private static void createFreund(Statement statement, String vorname, String nachname, String geburtstag, String wohnort, String spitzname, String lieblingsfarbe, String lieblingsessen, String lieblingstier, String hobbys, String lieblingsmusik, String lieblingsfilm, String traumauto, String traumberuf, String likeYou, String tellMe) throws SQLException {
|
|
statement.execute("INSERT INTO " + table_freunde + " VALUES " + "('" + vorname + "', '" + nachname + "', '" + geburtstag + "', '" + wohnort + "', '" + spitzname + "', '" + lieblingsfarbe + "', '" + lieblingsessen + "', '" + lieblingstier + "', '" + hobbys + "', '" + lieblingsmusik + "', '" + lieblingsfilm + "', '" + traumauto + "', '" + traumberuf + "', '" + likeYou + "', '" + tellMe + "')");
|
|
}
|
|
|
|
|
|
@Override
|
|
public void start(Stage primaryStage) throws Exception{
|
|
|
|
// Datenbank Connection ------------------------------------------------------------------------------------------------------------------------
|
|
// Connection aufbauen
|
|
Connection connection = DriverManager.getConnection(connection_string);
|
|
|
|
// CRUD Befehle ausführen können
|
|
Statement statement = connection.createStatement();
|
|
|
|
// Layout / Scene ------------------------------------------------------------------------------------------------------------------------------
|
|
VBox root = new VBox();
|
|
Scene scene = new Scene(root, 300,400);
|
|
scene.getStylesheets().add("sample/application.css");
|
|
root.setSpacing(15.0);
|
|
|
|
// Titel
|
|
primaryStage.setTitle("Freundebuch");
|
|
|
|
// Shadow
|
|
DropShadow shadow = new DropShadow();
|
|
|
|
// Label
|
|
Label labelMenue = new Label ("Mein digitales\nFreundebuch");
|
|
|
|
// Label designen
|
|
labelMenue.setPadding(new Insets(10));
|
|
labelMenue.setTextAlignment(TextAlignment.CENTER);
|
|
labelMenue.setFont(new Font("Comic Sans MS", 30));
|
|
|
|
// Button
|
|
Button freundeAnzeigen = new Button("Freunde zeigen");
|
|
Button freundeHinzufuegen = new Button("Freunde hinzufügen");
|
|
Button freundeSuchen = new Button("Freunde suchen");
|
|
|
|
// Button designen
|
|
freundeAnzeigen.setPadding(new Insets(10));
|
|
freundeHinzufuegen.setPadding(new Insets(10));
|
|
freundeSuchen.setPadding(new Insets(10));
|
|
freundeAnzeigen.setMinSize(150.0, 50.0);
|
|
freundeHinzufuegen.setMinSize(150.0, 50.0);
|
|
freundeSuchen.setMinSize(150.0, 50.0);
|
|
freundeAnzeigen.setFont(Font.font("Comic Sans MS"));
|
|
freundeHinzufuegen.setFont(Font.font("Comic Sans MS"));
|
|
freundeSuchen.setFont(Font.font("Comic Sans MS"));
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Freunde Anzeigen Button
|
|
freundeAnzeigen.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
freundeAnzeigen.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
freundeAnzeigen.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
freundeAnzeigen.setEffect(null);
|
|
}
|
|
});
|
|
|
|
freundeAnzeigen.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// Layout / Scene
|
|
StackPane rahmen = new StackPane();
|
|
rahmen.setStyle("-fx-background-color: white;");
|
|
|
|
HBox root3 = new HBox();
|
|
Scene scene3 = new Scene(rahmen, 800,500);
|
|
VBox seiteLinks = new VBox();
|
|
VBox seiteRechts = new VBox();
|
|
seiteLinks.setStyle("-fx-background-color: transparent;");
|
|
seiteRechts.setStyle("-fx-background-color: transparent;");
|
|
|
|
// Rahmen ############################################################
|
|
|
|
// Rechteck
|
|
Rectangle rand = new Rectangle();
|
|
rand.setHeight(950);
|
|
rand.setWidth(1650);
|
|
rand.setFill(Color.TRANSPARENT);
|
|
rand.setStroke(Color.WHITE);
|
|
rand.setStrokeWidth(5);
|
|
|
|
// Seite Links ############################################################
|
|
// Image
|
|
Image img = new Image("sample/bildIcon.jpg");
|
|
ImageView view = new ImageView(img);
|
|
|
|
view.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// File Chooser
|
|
}
|
|
});
|
|
|
|
// Rechteck
|
|
Rectangle viereck = new Rectangle();
|
|
viereck.setHeight(250);
|
|
viereck.setWidth(200);
|
|
viereck.setFill(Color.TRANSPARENT);
|
|
viereck.setStroke(Color.BLACK);
|
|
viereck.setStrokeWidth(5);
|
|
|
|
// StackPane
|
|
StackPane stackPane = new StackPane();
|
|
|
|
// In StackPane hinzufügen
|
|
stackPane.getChildren().addAll(viereck, view);
|
|
stackPane.setMaxHeight(250);
|
|
stackPane.setMaxWidth(200);
|
|
|
|
// VBoxen
|
|
VBox grundedatenRechts = new VBox();
|
|
|
|
// HBoxen
|
|
HBox grunddaten = new HBox();
|
|
HBox vornameBox = new HBox();
|
|
HBox nachnameBox = new HBox();
|
|
HBox geburtstagBox = new HBox();
|
|
HBox wohnortBox = new HBox();
|
|
HBox spitznameBox = new HBox();
|
|
HBox lieblingsfarbeBox = new HBox();
|
|
HBox lieblingsessenBox = new HBox();
|
|
HBox lieblingstierBox = new HBox();
|
|
HBox hobbysBox = new HBox();
|
|
|
|
// Circle
|
|
HBox kreisPosi = new HBox();
|
|
Circle circle = new Circle();
|
|
circle.setRadius(20);
|
|
circle.setFill(Color.BLUE);
|
|
kreisPosi.getChildren().add(circle);
|
|
|
|
// Button Effekte
|
|
view.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
view.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
view.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
view.setEffect(null);
|
|
}
|
|
});
|
|
|
|
// Button Klick
|
|
view.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// Hier soll sich ein Dateiauswahlfenster öffnen wo das Bild ausgewählt werden kann
|
|
}
|
|
});
|
|
|
|
// Label
|
|
Label vornameLabel = new Label("Vorname");
|
|
Label nachnameLabel = new Label("Nachname");
|
|
Label geburtstagLabel = new Label("Geburtstag");
|
|
Label wohnortLabel = new Label("Wohnort");
|
|
Label spitznameLabel = new Label("Spitzname");
|
|
Label lieblingsfarbeLabel = new Label("Lieblingsfarbe");
|
|
Label lieblingsessenLabel = new Label("Lieblingsessen");
|
|
Label lieblingstierLabel = new Label("Lieblingstier");
|
|
Label hobbysLabel = new Label("Hobbys");
|
|
|
|
// Label Positionierung
|
|
vornameLabel.setPadding(new Insets(0, 69, 0, 0));
|
|
nachnameLabel.setPadding(new Insets(0, 54, 0, 0));
|
|
geburtstagLabel.setPadding(new Insets(0, 45, 0, 0));
|
|
wohnortLabel.setPadding(new Insets(0, 67, 0, 0));
|
|
spitznameLabel.setPadding(new Insets(0, 107, 0, 0));
|
|
lieblingsfarbeLabel.setPadding(new Insets(0, 71, 0, 0));
|
|
lieblingsessenLabel.setPadding(new Insets(0, 71, 0, 0));
|
|
lieblingstierLabel.setPadding(new Insets(0, 88, 0, 0));
|
|
hobbysLabel.setPadding(new Insets(0, 135, 0, 0));
|
|
|
|
// Label Schriftart / Schriftgröße
|
|
vornameLabel.setFont(new Font("Comic Sans MS", 20));
|
|
nachnameLabel.setFont(new Font("Comic Sans MS", 20));
|
|
geburtstagLabel.setFont(new Font("Comic Sans MS", 20));
|
|
wohnortLabel.setFont(new Font("Comic Sans MS", 20));
|
|
spitznameLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsfarbeLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsessenLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingstierLabel.setFont(new Font("Comic Sans MS", 20));
|
|
hobbysLabel.setFont(new Font("Comic Sans MS", 20));
|
|
|
|
// Text
|
|
Text vornameEintrag = new Text();
|
|
Text nachnameEintrag = new Text();
|
|
Text geburtstagEintrag = new Text();
|
|
Text wohnortEintrag = new Text();
|
|
Text spitznameEintrag = new Text();
|
|
Text lieblingsessenEintrag = new Text();
|
|
Text lieblingstierEintrag = new Text();
|
|
Text hobbysEintrag = new Text();
|
|
|
|
// TextBreite
|
|
vornameEintrag.setWrappingWidth(200); // Damit der Abstand zwischen rechts und links wieder passt
|
|
|
|
// Schriftart - größe
|
|
vornameEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
nachnameEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
geburtstagEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
wohnortEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
spitznameEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsessenEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingstierEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
hobbysEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
|
|
// In vornameBox, nachnameBox, geburtstagBox, wohnortBox, spitznameBox, lieblingsfarbeBox, lieblingsessenBox, lieblingstierBox, hobbysBox hinzu
|
|
vornameBox.getChildren().addAll(vornameLabel, vornameEintrag );
|
|
nachnameBox.getChildren().addAll(nachnameLabel, nachnameEintrag );
|
|
geburtstagBox.getChildren().addAll(geburtstagLabel, geburtstagEintrag);
|
|
wohnortBox.getChildren().addAll(wohnortLabel, wohnortEintrag );
|
|
spitznameBox.getChildren().addAll(spitznameLabel, spitznameEintrag );
|
|
lieblingsfarbeBox.getChildren().addAll(lieblingsfarbeLabel, kreisPosi); // lieblingsfarbe
|
|
lieblingsfarbeBox.setAlignment(Pos.CENTER_LEFT);
|
|
lieblingsessenBox.getChildren().addAll(lieblingsessenLabel, lieblingsessenEintrag);
|
|
lieblingstierBox.getChildren().addAll(lieblingstierLabel, lieblingstierEintrag );
|
|
hobbysBox.getChildren().addAll(hobbysLabel, hobbysEintrag );
|
|
|
|
// In VBox grunddatenRechts hinzu
|
|
grundedatenRechts.getChildren().addAll(vornameBox, nachnameBox, geburtstagBox, wohnortBox);
|
|
grundedatenRechts.setAlignment(Pos.CENTER);
|
|
grundedatenRechts.setSpacing(35);
|
|
grundedatenRechts.setPadding(new Insets(50));
|
|
|
|
// In HBox Grunddaten hinzu
|
|
grunddaten.getChildren().addAll(stackPane, grundedatenRechts);
|
|
grunddaten.setAlignment(Pos.CENTER_LEFT);
|
|
|
|
// In VBox seiteLinks hinzu
|
|
seiteLinks.getChildren().addAll(grunddaten, spitznameBox, lieblingsfarbeBox, lieblingsessenBox, lieblingstierBox, hobbysBox);
|
|
seiteLinks.setSpacing(35);
|
|
|
|
// Seite Rechts ############################################################
|
|
// HBoxen
|
|
HBox lieblingsmusikBox = new HBox();
|
|
HBox lieblingsfilmBox = new HBox();
|
|
HBox traumautoBox = new HBox();
|
|
HBox traumberufBox = new HBox();
|
|
HBox likeYouBox = new HBox();
|
|
HBox tellMeBox = new HBox();
|
|
HBox buttonAuswahl = new HBox();
|
|
|
|
// Label
|
|
Label lieblingsmusikLabel = new Label("Lieblingsmusik");
|
|
Label lieblingsfilmLabel = new Label("Lieblingsfilm");
|
|
Label traumautoLabel = new Label("Traumauto");
|
|
Label traumberufLabel =new Label("Traumberuf");
|
|
Label likeYouLabel = new Label("Das mag ich\nan dir");
|
|
Label tellMeLabel = new Label("Das wolle\nich dir immer\nschon sagen");
|
|
|
|
// Label Schriftart / Schriftgröße
|
|
lieblingsmusikLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsfilmLabel.setFont(new Font("Comic Sans MS", 20));
|
|
traumautoLabel.setFont(new Font("Comic Sans MS", 20));
|
|
traumberufLabel.setFont(new Font("Comic Sans MS", 20));
|
|
likeYouLabel.setFont(new Font("Comic Sans MS", 20));
|
|
tellMeLabel.setFont(new Font("Comic Sans MS", 20));
|
|
|
|
// TextArea
|
|
Text lieblingsmusikEintrag = new Text();
|
|
Text lieblingsfilmEintrag = new Text();
|
|
Text traumautoEintrag = new Text();
|
|
Text traumberufEintrag = new Text();
|
|
Text likeYouEintrag = new Text(); // Beschränken auf 80 Zeichen
|
|
Text tellMeEintrag = new Text(); // Beschränken auf 305 Zeichen
|
|
|
|
// Schriftart Text
|
|
lieblingsmusikEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsfilmEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
traumautoEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
traumberufEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
likeYouEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
tellMeEintrag.setFont(new Font("Comic Sans MS", 20));
|
|
|
|
// Textumbruch
|
|
likeYouEintrag.setWrappingWidth(400);
|
|
tellMeEintrag.setWrappingWidth(400);
|
|
|
|
// Button
|
|
Button bearbeiten = new Button("Bearbeiten");
|
|
Button abbruch = new Button("Abbruch");
|
|
Button loeschen = new Button("Löschen");
|
|
buttonAuswahl.setSpacing(10.0);
|
|
buttonAuswahl.setAlignment(Pos.CENTER_RIGHT);
|
|
|
|
// Button Interaktion
|
|
// Speichern Interaktion ############################################################
|
|
bearbeiten.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
bearbeiten.setEffect(shadow);
|
|
}
|
|
});
|
|
bearbeiten.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
bearbeiten.setEffect(null);
|
|
}
|
|
});
|
|
bearbeiten.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
bearbeiten.setText("Speichern");
|
|
loeschen.setVisible(false);
|
|
}
|
|
});
|
|
|
|
// Abbruch Interaktion ##############################################################
|
|
abbruch.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
abbruch.setEffect(shadow);
|
|
}
|
|
});
|
|
abbruch.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
abbruch.setEffect(null);
|
|
}
|
|
});
|
|
abbruch.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
primaryStage.setScene(scene);
|
|
primaryStage.show();
|
|
}
|
|
});
|
|
|
|
// Löschen Interaktion ##############################################################
|
|
loeschen.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
loeschen.setEffect(shadow);
|
|
}
|
|
});
|
|
loeschen.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
loeschen.setEffect(null);
|
|
}
|
|
});
|
|
loeschen.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
|
|
}
|
|
});
|
|
|
|
// Label und TextField Positionierung
|
|
lieblingsmusikLabel.setPadding(new Insets(0, 54, 0, 0));
|
|
lieblingsfilmLabel.setPadding(new Insets(0, 69, 0, 0));
|
|
traumautoLabel.setPadding(new Insets(0, 88, 0, 0));
|
|
traumberufLabel.setPadding(new Insets(0, 75, 0, 0));
|
|
likeYouLabel.setPadding(new Insets(0, 77, 0, 0));
|
|
tellMeLabel.setPadding(new Insets(0, 64, 0, 0));
|
|
|
|
// HBoxen positionieren
|
|
likeYouBox.setPadding(new Insets(50,0,0,0));
|
|
likeYouBox.setAlignment(Pos.CENTER_LEFT);
|
|
tellMeBox.setPadding(new Insets(5,0,0,0));
|
|
tellMeBox.setMinHeight(250);
|
|
tellMeBox.setMaxHeight(250);
|
|
tellMeBox.setAlignment(Pos.CENTER_LEFT);
|
|
|
|
// In HBoxen hinzu
|
|
lieblingsmusikBox.getChildren().addAll(lieblingsmusikLabel, lieblingsmusikEintrag);
|
|
lieblingsfilmBox.getChildren().addAll(lieblingsfilmLabel, lieblingsfilmEintrag);
|
|
traumautoBox.getChildren().addAll(traumautoLabel, traumautoEintrag);
|
|
traumberufBox.getChildren().addAll(traumberufLabel, traumberufEintrag);
|
|
likeYouBox.getChildren().addAll(likeYouLabel, likeYouEintrag);
|
|
tellMeBox.getChildren().addAll(tellMeLabel, tellMeEintrag);
|
|
buttonAuswahl.getChildren().addAll(loeschen, bearbeiten, abbruch);
|
|
|
|
// In Seite Rechts hinzu
|
|
seiteRechts.getChildren().addAll(lieblingsmusikBox, lieblingsfilmBox, traumautoBox, traumberufBox, likeYouBox, tellMeBox, buttonAuswahl);
|
|
seiteRechts.setSpacing(35);
|
|
seiteRechts.setPadding(new Insets(50,0,0,0));
|
|
|
|
// Layout ##################################################################
|
|
// Ins Layout einfügen
|
|
root3.getChildren().addAll(seiteLinks, seiteRechts);
|
|
root3.setPadding(new Insets(150));
|
|
root3.setSpacing(150);
|
|
root3.setAlignment(Pos.CENTER);
|
|
root3.setStyle("-fx-background-color: transparent;");
|
|
rahmen.getChildren().addAll(rand, root3);
|
|
|
|
// Stage
|
|
primaryStage.setScene(scene3);
|
|
primaryStage.setFullScreen(true);
|
|
primaryStage.show();
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Freunde Hinzufügen Button
|
|
freundeHinzufuegen.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
freundeHinzufuegen.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
freundeHinzufuegen.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
freundeHinzufuegen.setEffect(null);
|
|
}
|
|
});
|
|
|
|
freundeHinzufuegen.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// Layout / Scene
|
|
StackPane rahmen = new StackPane();
|
|
rahmen.setStyle("-fx-background-color: white;");
|
|
|
|
HBox root3 = new HBox();
|
|
Scene scene3 = new Scene(rahmen, 800,500);
|
|
VBox seiteLinks = new VBox();
|
|
VBox seiteRechts = new VBox();
|
|
seiteLinks.setStyle("-fx-background-color: transparent;");
|
|
seiteRechts.setStyle("-fx-background-color: transparent;");
|
|
|
|
// Rahmen ############################################################
|
|
|
|
// Rechteck
|
|
Rectangle rand = new Rectangle();
|
|
rand.setHeight(950);
|
|
rand.setWidth(1650);
|
|
rand.setFill(Color.TRANSPARENT);
|
|
rand.setStroke(Color.WHITE);
|
|
rand.setStrokeWidth(5);
|
|
|
|
// Seite Links ############################################################
|
|
// Image
|
|
Image img = new Image("sample/bildIcon.jpg");
|
|
ImageView view = new ImageView(img);
|
|
|
|
view.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// File Chooser
|
|
}
|
|
});
|
|
|
|
// Rechteck
|
|
Rectangle viereck = new Rectangle();
|
|
viereck.setHeight(250);
|
|
viereck.setWidth(200);
|
|
viereck.setFill(Color.TRANSPARENT);
|
|
viereck.setStroke(Color.BLACK);
|
|
viereck.setStrokeWidth(5);
|
|
|
|
// StackPane
|
|
StackPane stackPane = new StackPane();
|
|
|
|
// In StackPane hinzufügen
|
|
stackPane.getChildren().addAll(viereck, view);
|
|
stackPane.setMaxHeight(250);
|
|
stackPane.setMaxWidth(200);
|
|
|
|
// VBoxen
|
|
VBox grundedatenRechts = new VBox();
|
|
|
|
// HBoxen
|
|
HBox grunddaten = new HBox();
|
|
HBox vornameBox = new HBox();
|
|
HBox nachnameBox = new HBox();
|
|
HBox geburtstagBox = new HBox();
|
|
HBox wohnortBox = new HBox();
|
|
HBox spitznameBox = new HBox();
|
|
HBox lieblingsfarbeBox = new HBox();
|
|
HBox lieblingsessenBox = new HBox();
|
|
HBox lieblingstierBox = new HBox();
|
|
HBox hobbysBox = new HBox();
|
|
|
|
// Circle
|
|
HBox kreisPosi = new HBox();
|
|
Circle circle = new Circle();
|
|
circle.setRadius(20);
|
|
circle.setFill(Color.WHITE);
|
|
kreisPosi.getChildren().add(circle);
|
|
kreisPosi.setPadding(new Insets(0,0,0,110));
|
|
|
|
// Button Effekte
|
|
view.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
view.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
view.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
view.setEffect(null);
|
|
}
|
|
});
|
|
|
|
// Button Klick
|
|
view.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// Hier soll sich ein Dateiauswahlfenster öffnen wo das Bild ausgewählt werden kann
|
|
}
|
|
});
|
|
|
|
// ColorPicker
|
|
ColorPicker colorPicker = new ColorPicker();
|
|
|
|
// ColorPicker EventHandler
|
|
colorPicker.setOnAction(new EventHandler<ActionEvent>() {
|
|
@Override
|
|
public void handle(ActionEvent event) {
|
|
// hier muss irgendwie der Rand gefärbt werden in Farbe des Color Picker
|
|
viereck.setStroke(colorPicker.getValue());
|
|
rand.setStroke(colorPicker.getValue());
|
|
circle.setFill(colorPicker.getValue());
|
|
}
|
|
});
|
|
|
|
// Label
|
|
Label vornameLabel = new Label("Vorname");
|
|
Label nachnameLabel = new Label("Nachname");
|
|
Label geburtstagLabel = new Label("Geburtstag");
|
|
Label wohnortLabel = new Label("Wohnort");
|
|
Label spitznameLabel = new Label("Spitzname");
|
|
Label lieblingsfarbeLabel = new Label("Lieblingsfarbe");
|
|
Label lieblingsessenLabel = new Label("Lieblingsessen");
|
|
Label lieblingstierLabel = new Label("Lieblingstier");
|
|
Label hobbysLabel = new Label("Hobbys");
|
|
|
|
// Label Positionierung
|
|
vornameLabel.setPadding(new Insets(0, 69, 0, 0));
|
|
nachnameLabel.setPadding(new Insets(0, 54, 0, 0));
|
|
geburtstagLabel.setPadding(new Insets(0, 45, 0, 0));
|
|
wohnortLabel.setPadding(new Insets(0, 67, 0, 0));
|
|
spitznameLabel.setPadding(new Insets(0, 107, 0, 0));
|
|
lieblingsfarbeLabel.setPadding(new Insets(0, 71, 0, 0));
|
|
lieblingsessenLabel.setPadding(new Insets(0, 71, 0, 0));
|
|
lieblingstierLabel.setPadding(new Insets(0, 88, 0, 0));
|
|
hobbysLabel.setPadding(new Insets(0, 135, 0, 0));
|
|
|
|
// Label Schriftart / Schriftgröße
|
|
vornameLabel.setFont(new Font("Comic Sans MS", 20));
|
|
nachnameLabel.setFont(new Font("Comic Sans MS", 20));
|
|
geburtstagLabel.setFont(new Font("Comic Sans MS", 20));
|
|
wohnortLabel.setFont(new Font("Comic Sans MS", 20));
|
|
spitznameLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsfarbeLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsessenLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingstierLabel.setFont(new Font("Comic Sans MS", 20));
|
|
hobbysLabel.setFont(new Font("Comic Sans MS", 20));
|
|
|
|
// TextField
|
|
TextField vorname = new TextField();
|
|
TextField nachname = new TextField();
|
|
TextField geburtstag = new TextField();
|
|
TextField wohnort = new TextField();
|
|
TextField spitzname = new TextField();
|
|
TextField lieblingsessen = new TextField();
|
|
TextField lieblingstier = new TextField();
|
|
TextField hobbys = new TextField();
|
|
|
|
// TextField Größen
|
|
vorname.setMinHeight(30);
|
|
vorname.setMinWidth(200);
|
|
nachname.setMinHeight(30);
|
|
nachname.setMinWidth(200);
|
|
geburtstag.setMinHeight(30);
|
|
geburtstag.setMinWidth(200);
|
|
wohnort.setMinHeight(30);
|
|
wohnort.setMinWidth(200);
|
|
spitzname.setMinHeight(30);
|
|
spitzname.setMinWidth(400);
|
|
lieblingsessen.setMinHeight(30);
|
|
lieblingsessen.setMinWidth(400);
|
|
lieblingstier.setMinHeight(30);
|
|
lieblingstier.setMinWidth(400);
|
|
hobbys.setMinHeight(60);
|
|
hobbys.setMinWidth(400);
|
|
|
|
// In vornameBox, nachnameBox, geburtstagBox, wohnortBox, spitznameBox, lieblingsfarbeBox, lieblingsessenBox, lieblingstierBox, hobbysBox hinzu
|
|
vornameBox.getChildren().addAll(vornameLabel, vorname);
|
|
nachnameBox.getChildren().addAll(nachnameLabel, nachname);
|
|
geburtstagBox.getChildren().addAll(geburtstagLabel, geburtstag);
|
|
wohnortBox.getChildren().addAll(wohnortLabel, wohnort);
|
|
spitznameBox.getChildren().addAll(spitznameLabel, spitzname);
|
|
lieblingsfarbeBox.getChildren().addAll(lieblingsfarbeLabel, colorPicker, kreisPosi); // lieblingsfarbe
|
|
lieblingsfarbeBox.setAlignment(Pos.CENTER_LEFT);
|
|
lieblingsessenBox.getChildren().addAll(lieblingsessenLabel, lieblingsessen);
|
|
lieblingstierBox.getChildren().addAll(lieblingstierLabel, lieblingstier);
|
|
hobbysBox.getChildren().addAll(hobbysLabel, hobbys);
|
|
|
|
// In VBox grunddatenRechts hinzu
|
|
grundedatenRechts.getChildren().addAll(vornameBox, nachnameBox, geburtstagBox, wohnortBox);
|
|
grundedatenRechts.setAlignment(Pos.CENTER);
|
|
grundedatenRechts.setSpacing(35);
|
|
grundedatenRechts.setPadding(new Insets(50));
|
|
|
|
// In HBox Grunddaten hinzu
|
|
grunddaten.getChildren().addAll(stackPane, grundedatenRechts);
|
|
grunddaten.setAlignment(Pos.CENTER_LEFT);
|
|
|
|
// In VBox seiteLinks hinzu
|
|
seiteLinks.getChildren().addAll(grunddaten, spitznameBox, lieblingsfarbeBox, lieblingsessenBox, lieblingstierBox, hobbysBox);
|
|
seiteLinks.setSpacing(35);
|
|
|
|
// Seite Rechts ############################################################
|
|
// HBoxen
|
|
HBox lieblingsmusikBox = new HBox();
|
|
HBox lieblingsfilmBox = new HBox();
|
|
HBox traumautoBox = new HBox();
|
|
HBox traumberufBox = new HBox();
|
|
HBox likeYouBox = new HBox();
|
|
HBox tellMeBox = new HBox();
|
|
HBox buttonAuswahl = new HBox();
|
|
|
|
// Label
|
|
Label lieblingsmusikLabel = new Label("Lieblingsmusik");
|
|
Label lieblingsfilmLabel = new Label("Lieblingsfilm");
|
|
Label traumautoLabel = new Label("Traumauto");
|
|
Label traumberufLabel =new Label("Traumberuf");
|
|
Label likeYouLabel = new Label("Das mag ich\nan dir");
|
|
Label tellMeLabel = new Label("Das wolle\nich dir immer\nschon sagen");
|
|
|
|
// Label Schriftart / Schriftgröße
|
|
lieblingsmusikLabel.setFont(new Font("Comic Sans MS", 20));
|
|
lieblingsfilmLabel.setFont(new Font("Comic Sans MS", 20));
|
|
traumautoLabel.setFont(new Font("Comic Sans MS", 20));
|
|
traumberufLabel.setFont(new Font("Comic Sans MS", 20));
|
|
likeYouLabel.setFont(new Font("Comic Sans MS", 20));
|
|
tellMeLabel.setFont(new Font("Comic Sans MS", 20));
|
|
|
|
// TextFields
|
|
TextField lieblingsmusik = new TextField();
|
|
TextField lieblingsfilm = new TextField();
|
|
TextField traumauto = new TextField();
|
|
TextField traumberuf = new TextField();
|
|
TextField likeYou = new TextField();
|
|
TextField tellMe = new TextField();
|
|
lieblingsmusik.setMinHeight(30);
|
|
lieblingsmusik.setMinWidth(400);
|
|
lieblingsfilm.setMinHeight(30);
|
|
lieblingsfilm.setMinWidth(400);
|
|
traumauto.setMinHeight(30);
|
|
traumauto.setMinWidth(400);
|
|
traumberuf.setMinHeight(30);
|
|
traumberuf.setMinWidth(400);
|
|
likeYou.setMinHeight(100);
|
|
likeYou.setMinWidth(400);
|
|
tellMe.setMinHeight(190);
|
|
tellMe.setMinWidth(400);
|
|
|
|
// Button
|
|
Button speichern = new Button("Speichern");
|
|
Button abbruch = new Button("Abbruch");
|
|
buttonAuswahl.setSpacing(10.0);
|
|
buttonAuswahl.setAlignment(Pos.CENTER_RIGHT);
|
|
|
|
// Button Interaktion
|
|
speichern.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
speichern.setEffect(shadow);
|
|
}
|
|
});
|
|
speichern.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
speichern.setEffect(null);
|
|
}
|
|
});
|
|
speichern.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
if (vorname.getText().isEmpty() || nachname.getText().isEmpty() || geburtstag.getText().isEmpty() || wohnort.getText().isEmpty() || spitzname.getText().isEmpty() || lieblingsessen.getText().isEmpty() || lieblingstier.getText().isEmpty() || hobbys.getText().isEmpty() || lieblingsmusik.getText().isEmpty() || lieblingsfilm.getText().isEmpty() || traumauto.getText().isEmpty() || traumberuf.getText().isEmpty() || likeYou.getText().isEmpty() || tellMe.getText().isEmpty()) {
|
|
} else {
|
|
try {
|
|
createFreund(statement, vorname.getText(), nachname.getText(), geburtstag.getText(), wohnort.getText(), spitzname.getText(), colorPicker.getValue().toString(), lieblingsessen.getText(), lieblingstier.getText(), hobbys.getText(), lieblingsmusik.getText(), lieblingsfilm.getText(), traumauto.getText(), traumberuf.getText(), likeYou.getText(), tellMe.getText());
|
|
} catch (SQLException throwables) {
|
|
throwables.printStackTrace();
|
|
}
|
|
primaryStage.setScene(scene);
|
|
primaryStage.show();
|
|
}
|
|
}
|
|
});
|
|
abbruch.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
abbruch.setEffect(shadow);
|
|
}
|
|
});
|
|
abbruch.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
abbruch.setEffect(null);
|
|
}
|
|
});
|
|
abbruch.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
primaryStage.setScene(scene);
|
|
primaryStage.show();
|
|
}
|
|
});
|
|
|
|
// Label und TextField Positionierung
|
|
lieblingsmusikLabel.setPadding(new Insets(0, 54, 0, 0));
|
|
lieblingsfilmLabel.setPadding(new Insets(0, 69, 0, 0));
|
|
traumautoLabel.setPadding(new Insets(0, 88, 0, 0));
|
|
traumberufLabel.setPadding(new Insets(0, 75, 0, 0));
|
|
likeYouLabel.setPadding(new Insets(0, 77, 0, 0));
|
|
tellMeLabel.setPadding(new Insets(0, 64, 0, 0));
|
|
|
|
// HBoxen positionieren
|
|
likeYouBox.setPadding(new Insets(50,0,0,0));
|
|
likeYouBox.setAlignment(Pos.CENTER_LEFT);
|
|
tellMeBox.setPadding(new Insets(5,0,0,0));
|
|
tellMeBox.setAlignment(Pos.CENTER_LEFT);
|
|
|
|
// In HBoxen hinzu
|
|
lieblingsmusikBox.getChildren().addAll(lieblingsmusikLabel, lieblingsmusik);
|
|
lieblingsfilmBox.getChildren().addAll(lieblingsfilmLabel, lieblingsfilm);
|
|
traumautoBox.getChildren().addAll(traumautoLabel, traumauto);
|
|
traumberufBox.getChildren().addAll(traumberufLabel, traumberuf);
|
|
likeYouBox.getChildren().addAll(likeYouLabel, likeYou);
|
|
tellMeBox.getChildren().addAll(tellMeLabel, tellMe);
|
|
buttonAuswahl.getChildren().addAll(speichern, abbruch);
|
|
|
|
// In Seite Rechts hinzu
|
|
seiteRechts.getChildren().addAll(lieblingsmusikBox, lieblingsfilmBox, traumautoBox, traumberufBox, likeYouBox, tellMeBox, buttonAuswahl);
|
|
seiteRechts.setSpacing(35);
|
|
seiteRechts.setPadding(new Insets(50,0,0,0));
|
|
|
|
// Layout ##################################################################
|
|
// Ins Layout einfügen
|
|
root3.getChildren().addAll(seiteLinks, seiteRechts);
|
|
root3.setPadding(new Insets(150));
|
|
root3.setSpacing(150);
|
|
root3.setAlignment(Pos.CENTER);
|
|
root3.setStyle("-fx-background-color: transparent;");
|
|
rahmen.getChildren().addAll(rand, root3);
|
|
|
|
// Stage
|
|
primaryStage.setScene(scene3);
|
|
primaryStage.setFullScreen(true);
|
|
primaryStage.show();
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Freunde Suchen Button
|
|
freundeSuchen.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
freundeSuchen.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
freundeSuchen.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
freundeSuchen.setEffect(null);
|
|
}
|
|
});
|
|
|
|
freundeSuchen.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
// Layout / Scene
|
|
VBox root4 = new VBox();
|
|
HBox hBox = new HBox();
|
|
Scene scene4 = new Scene(root4, 250,250);
|
|
|
|
// Label
|
|
Label nameLabel = new Label("Vorname:");
|
|
nameLabel.setFont(new Font("Comic Sans MS", 15));
|
|
nameLabel.setStyle("-fx-font-weight: bold;");
|
|
|
|
// TextField
|
|
TextField freundSuche = new TextField();
|
|
freundSuche.setMaxWidth(130.0);
|
|
freundSuche.setAlignment(Pos.CENTER);
|
|
|
|
// Button
|
|
Button suche = new Button("Suche");
|
|
Button zurueck = new Button("Zurück");
|
|
suche.setMinWidth(60.0);
|
|
zurueck.setMinWidth(60.0);
|
|
|
|
// Suchen Button Hover
|
|
suche.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
suche.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
suche.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
suche.setEffect(null);
|
|
}
|
|
});
|
|
|
|
// Zurück Button Hover
|
|
zurueck.setOnMouseEntered(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
zurueck.setEffect(shadow);
|
|
}
|
|
});
|
|
|
|
zurueck.setOnMouseExited(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
zurueck.setEffect(null);
|
|
}
|
|
});
|
|
|
|
// Suche Button Click
|
|
suche.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
if (freundSuche.getText().isEmpty()) {
|
|
freundSuche.setStyle("-fx-border-color: red;");
|
|
}
|
|
}
|
|
});
|
|
|
|
// Zurück Button Click
|
|
zurueck.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
|
@Override
|
|
public void handle(MouseEvent event) {
|
|
primaryStage.setScene(scene);
|
|
primaryStage.setResizable(true);
|
|
primaryStage.show();
|
|
}
|
|
});
|
|
|
|
// Ins Layout einfügen
|
|
hBox.getChildren().addAll(suche, zurueck);
|
|
hBox.setAlignment(Pos.CENTER);
|
|
hBox.setSpacing(10.0);
|
|
root4.getChildren().addAll(nameLabel, freundSuche, hBox);
|
|
root4.setAlignment(Pos.CENTER);
|
|
root4.setSpacing(15.0);
|
|
root4.setStyle("-fx-background-image: url(\"/sample/sucheBackground.jpg\");" +
|
|
"-fx-background-repeat: no-repeat;");
|
|
|
|
// Stage
|
|
primaryStage.setScene(scene4);
|
|
primaryStage.setResizable(false);
|
|
primaryStage.show();
|
|
}
|
|
});
|
|
|
|
// Ins Layout einfügen
|
|
root.setAlignment(Pos.CENTER);
|
|
root.getChildren().addAll(labelMenue, freundeAnzeigen, freundeHinzufuegen, freundeSuchen);
|
|
|
|
// Stage
|
|
primaryStage.setScene(scene);
|
|
primaryStage.show();
|
|
}
|
|
|
|
}
|