//codice:
package login;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class AppLogin extends Application {
// sovrascrivo il metodo start
@Override
public void start (Stage primaryStage) {
//nodo radice, con gridPane
GridPane griglia = new GridPane();
griglia.setAlignment(Pos.CENTER);
griglia.setHgap(10);
griglia.setVgap(10);
griglia.setPadding(new Insets(25, 25, 25, 25));
//definisco la scena, associandola alla istanza di gridpane
Scene scena = new Scene(griglia, 350, 300);
// associo la scena con il palcoscenico
primaryStage.setScene(scena);
//posiziono nella griglia etichette e campi di testo
// crea testo
Text sceneTitle = new Text("Benvenuto");
// definisce fonti caratteri
sceneTitle.setFont(Font.font("Verdana", FontWeight.NORMAL, 22));
//aggiunge testo nella cella con indici (0,0) dove: (colonna,riga)
//aggiunge offset
griglia.add(sceneTitle, 0,0,2,1);
//crea etichetta nella cella con indici (0,1)
Label userName = new Label("Nome Utente:");
griglia.add(userName, 0, 1);
//crea un campo di testo nella cella con indici (1,1)
TextField userTextField = new TextField();
griglia.add(userTextField,1 ,1);
//crea campo password nella cella con indici (1,2)
PasswordField pwBox = new PasswordField();
griglia.add(pwBox,1,2);
// crea pulsante
Button btn = new Button("Login");
//crea HBox e lo posizione e ci aggiunge il pulsante
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(btn);
//aggiunge tutto nella cella (1,4)
griglia.add(hbBtn,1,4);
//crea etichetta e la posiziona in cella (1,5)
final Label actionTarget = new Label("");
griglia.add(actionTarget,1,5);
//definisce azione pulsante confrontando password con "miaPassword"
// se diversa o uguale comunica risultato su etichetta actiontarget
btn.setOnAction((ActionEvent) ->
{
if(!pwBox.getText().equals("miaPassword"))
{
actionTarget.setText("Password errata");
actionTarget.setTextFill(Color.DARKRED);
}
else
{
actionTarget.setText("Password corretta");
actionTarget.setTextFill(Color.DARKGREEN);
}
pwBox.clear();
});
//definisce titolo finestra
primaryStage.setTitle("LogIn");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}