AHHHHHHHHHH COMMITED TO GITHUB INSTEAD OF FORGEJO FOR WEEKS
This commit is contained in:
parent
d6ef44f3d1
commit
0919005cb2
163 changed files with 3875 additions and 47 deletions
|
@ -0,0 +1,38 @@
|
|||
package com.example;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* JavaFX App
|
||||
*/
|
||||
public class App extends Application {
|
||||
|
||||
private static Scene scene;
|
||||
|
||||
@Override
|
||||
public void start(Stage stage) throws IOException {
|
||||
scene = new Scene(loadFXML("primary"), 275, 250);
|
||||
stage.setScene(scene);
|
||||
stage.show();
|
||||
}
|
||||
|
||||
static void setRoot(String fxml) throws IOException {
|
||||
scene.setRoot(loadFXML(fxml));
|
||||
}
|
||||
|
||||
private static Parent loadFXML(String fxml) throws IOException {
|
||||
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
|
||||
return fxmlLoader.load();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
package com.example;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ButtonType;
|
||||
import javafx.scene.control.ProgressBar;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
|
||||
public class PrimaryController {
|
||||
double progress = 0;
|
||||
|
||||
@FXML
|
||||
private Button buttonSend;
|
||||
|
||||
@FXML
|
||||
private TextField emailInput;
|
||||
|
||||
@FXML
|
||||
private TextField nachnameInput;
|
||||
|
||||
@FXML
|
||||
private ProgressBar progressBar;
|
||||
|
||||
@FXML
|
||||
private TextField vornameInput;
|
||||
|
||||
@FXML
|
||||
void onTextChanged(KeyEvent event) {
|
||||
if (event.getSource() == vornameInput || event.getSource() == nachnameInput
|
||||
|| event.getSource() == emailInput) {
|
||||
progress = 0;
|
||||
if (!vornameInput.getText().trim().isEmpty()) {
|
||||
progress += 1.0 / 3.0;
|
||||
}
|
||||
if (!nachnameInput.getText().trim().isEmpty()) {
|
||||
progress += 1.0 / 3.0;
|
||||
}
|
||||
if (!emailInput.getText().trim().isEmpty()) {
|
||||
progress += 1.0 / 3.0;
|
||||
}
|
||||
progressBar.setProgress(progress);
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
void sendForm(ActionEvent event) {
|
||||
if ((int) progress == 1) {
|
||||
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
|
||||
alert.setTitle("Confirmation Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Are you sure you want to send?");
|
||||
alert.showAndWait();
|
||||
|
||||
if (alert.getResult() == ButtonType.OK) {
|
||||
vornameInput.clear();
|
||||
nachnameInput.clear();
|
||||
emailInput.clear();
|
||||
progressBar.setProgress(0);
|
||||
}
|
||||
} else {
|
||||
Alert alert = new Alert(AlertType.WARNING);
|
||||
alert.setTitle("Incomplete Data Warning");
|
||||
alert.setHeaderText("Incomplete Data");
|
||||
alert.setContentText("Please fill in all required fields before proceeding.");
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
module com.example {
|
||||
requires javafx.controls;
|
||||
requires javafx.fxml;
|
||||
|
||||
opens com.example to javafx.fxml;
|
||||
exports com.example;
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.ProgressBar?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
|
||||
<VBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="250.0" prefWidth="275.0" spacing="10.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.PrimaryController">
|
||||
<children>
|
||||
<Label text="Bitte füllen Sie das Formular aus:" />
|
||||
<GridPane vgap="5.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="150.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Vorname:" />
|
||||
<Label text="Nachname:" GridPane.rowIndex="1" />
|
||||
<Label text="E-Mail:" GridPane.rowIndex="2" />
|
||||
<TextField fx:id="vornameInput" onKeyTyped="#onTextChanged" promptText="Vorname" GridPane.columnIndex="1" />
|
||||
<TextField fx:id="nachnameInput" onKeyTyped="#onTextChanged" promptText="Nachname" GridPane.columnIndex="1" GridPane.rowIndex="1" />
|
||||
<TextField fx:id="emailInput" onKeyTyped="#onTextChanged" promptText="E-Mail" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
||||
<Label text="Fortschritt:" GridPane.rowIndex="3" />
|
||||
<ProgressBar fx:id="progressBar" prefWidth="200.0" progress="0.0" GridPane.columnIndex="1" GridPane.rowIndex="3" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<Button fx:id="buttonSend" mnemonicParsing="false" onAction="#sendForm" text="Absenden" />
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
|
||||
</padding>
|
||||
</VBox>
|
Loading…
Add table
Add a link
Reference in a new issue