Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package registration;
- import javafx.application.Application;
- import javafx.beans.InvalidationListener;
- import javafx.beans.value.ChangeListener;
- import javafx.beans.value.ObservableValue;
- 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.PasswordField;
- import javafx.scene.control.TextField;
- import javafx.scene.layout.GridPane;
- import javafx.scene.layout.HBox;
- import javafx.scene.text.Text;
- import javafx.stage.Stage;
- import javax.swing.event.DocumentEvent;
- public class Registration extends Application {
- boolean usernameSet;
- boolean pwSet;
- boolean emailSet;
- public static void main(String[] args) {
- launch(args);
- }
- @Override
- public void start(Stage primaryStage) {
- primaryStage.setTitle("Registration");
- GridPane grid = new GridPane();
- grid.setAlignment(Pos.CENTER);
- grid.setHgap(10);
- grid.setVgap(10);
- grid.setPadding(new Insets(25, 25, 25, 25));
- Text scenetitle = new Text("Welcome");
- scenetitle.setId("welcome-text");
- grid.add(scenetitle, 0, 0, 2, 1);
- Label userName = new Label("User Name:");
- grid.add(userName, 0, 1);
- TextField userTextField = new TextField();
- userTextField.setId("userName");
- grid.add(userTextField, 1, 1);
- Label pw = new Label("Password:");
- grid.add(pw, 0, 2);
- PasswordField pwBox = new PasswordField();
- pwBox.setId("password");
- grid.add(pwBox, 1, 2);
- Label eMail = new Label("E-Mail:");
- grid.add(eMail, 0, 3);
- TextField eMailField = new TextField();
- eMailField.setId("email");
- grid.add(eMailField, 1, 3);
- Button btn = new Button("Sign in");
- btn.setId("button");
- btn.setDisable(true);
- HBox hbBtn = new HBox(10);
- hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
- hbBtn.getChildren().add(btn);
- grid.add(hbBtn, 1, 4);
- final Text actiontarget = new Text();
- grid.add(actiontarget, 1, 6);
- actiontarget.setId("actiontarget");
- userTextField.textProperty().addListener(new ChangeListener<String>() {
- @Override
- public void changed(final ObservableValue<? extends String> observable, final String oldValue, final String newValue) {
- if(userTextField.getText().length() >= 5)
- usernameSet = true;
- if(userTextField.getText().length() < 5)
- usernameSet = false;
- if(usernameSet && pwSet && emailSet)
- btn.setDisable(false);
- if(!usernameSet || !pwSet || !emailSet)
- btn.setDisable(true);
- }
- });
- pwBox.textProperty().addListener(new ChangeListener<String>() {
- @Override
- public void changed(final ObservableValue<? extends String> observable, final String oldValue, final String newValue) {
- if(pwBox.getText().matches("^.*[a-zA-Z].*$") && pwBox.getText().matches("^.*[^\\w\\d\\s].*$") && pwBox.getText().matches("^.*\\d.*$"))
- pwSet = true;
- else
- pwSet = false;
- if(usernameSet && pwSet && emailSet)
- btn.setDisable(false);
- if(!usernameSet || !pwSet || !emailSet)
- btn.setDisable(true);
- }
- });
- eMailField.textProperty().addListener(new ChangeListener<String>() {
- @Override
- public void changed(final ObservableValue<? extends String> observable, final String oldValue, final String newValue) {
- if(eMailField.getText().length() >= 6 && eMailField.getText().matches("^[^@]*@[^@]*\\.[^@]*$"))
- emailSet = true;
- else
- emailSet = false;
- if(usernameSet && pwSet && emailSet)
- btn.setDisable(false);
- if(!usernameSet || !pwSet || !emailSet)
- btn.setDisable(true);
- }
- });
- btn.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent e) {
- actiontarget.setText("Sign in button pressed");
- }
- });
- Scene scene = new Scene(grid, 300, 275);
- primaryStage.setScene(scene);
- scene.getStylesheets().add(Registration.class.getResource("Login.css").toExternalForm());
- primaryStage.show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement