@Override public void start(Stage stage) throws Exception { // Cria um painél para adicionar os componentes. Neste caso será usado o AnchorPane por dar // liberdade de posicionamento dos componentes. AnchorPane pane = new AnchorPane(); // Define as propriedades do painel criado. pane.setPrefSize(400, 300); // Define o nome da janela. stage.setTitle("Formulário Login JavaFX"); // Adiciona um estilo em css para o painel de login. pane.setStyle( "-fx-background-color: linear-gradient(from 0% 0% to 100% 100%, blue 0%, silver 100%);"); // Cria uma cena para inserir o formulário. A cena é responsável por fazer a exibição do // formulário. Scene scene = new Scene(pane); // Cria um campo de texto para ser inserido o login e define o texto para ser exibido antes do // usuário clicar na caixa. // Cuidado para não criar um objeto TextField da classe awt, o que é usado é do pacote // javafx.scene.control.TextField. TextField txLogin = new TextField(); txLogin.setPromptText("Digite aqui o seu login"); // Cria o campo de senha. PasswordField txSenha = new PasswordField(); txSenha.setPromptText("Digite aqui sua senha"); // Cria os botões que serão usados no formulário. Button btnEntrar = new Button("Entrar"); Button btnSair = new Button("Sair"); /* * Para adicionar os componentes ao painel, será utilizado o método getChildren.addAll(Node... arg) passando como argumento * todos os componentes que serão adicionados. * * No JavaFX todos os componentes visuais são filhos de Node, por isso podem ser passados por parâmetros, isso equivale a classe Component do Swing. */ pane.getChildren().addAll(txLogin, txSenha, btnEntrar, btnSair); // Indica qual cena será utilizada no stage (que é a tela de exibição propriamente dita). stage.setScene(scene); // Exibe a conteúdo do stage. stage.show(); /* * O comprimento dos componentes deve ser definido depois da exibição do método show, pois só depois da exibição * que se obtém o tamanho concreto da tela, para poder posicionar os componentes de forma correta. */ // Define o posicionamento dos compotentes na tela. txLogin.setLayoutX((pane.getWidth() - txLogin.getWidth()) / 2); txLogin.setLayoutY(50); txSenha.setLayoutX((pane.getWidth() - txSenha.getWidth()) / 2); txSenha.setLayoutY(100); btnEntrar.setLayoutX((pane.getWidth() - btnEntrar.getWidth()) / 2); btnEntrar.setLayoutY(150); btnSair.setLayoutX((pane.getWidth() - btnSair.getWidth()) / 2); btnSair.setLayoutY(200); }
@Override public void start(Stage stage) { LoginFX.stage = stage; stage.setTitle("SGAP - Login"); pane = new Pane(); pane.setPrefSize(400, 120); pane.setStyle( "-fx-background-color:linear-gradient(from 0% 0% to 100% 100%, silver 0%, gold 100%);"); tfLogin = new TextField(); tfLogin.setPromptText("Digite aqui seu login"); tfLogin.setPrefSize(200, tfLogin.getFont().getSize()); tfSenha = new PasswordField(); tfSenha.setPromptText("Digite aqui a senha"); tfSenha.setPrefSize(200, tfSenha.getFont().getSize()); tfSenha.setOnKeyPressed( new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent event) { if (event.getCode() == KeyCode.ENTER) { botaoLogar(); } } }); bEntrar = new Button("Entrar"); bEntrar.setPrefSize(100, bEntrar.getFont().getSize() + 5); bEntrar.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { botaoLogar(); } }); bSair = new Button("Sair"); bSair.setPrefSize(100, bSair.getFont().getSize() + 5); bSair.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { botaoSair(); } }); tfLogin.setLayoutX( (pane.getPrefWidth() - 1.5 * bEntrar.getPrefWidth() - tfLogin.getPrefWidth()) / 2); tfSenha.setLayoutX( (pane.getPrefWidth() - 1.5 * bEntrar.getPrefWidth() - tfLogin.getPrefWidth()) / 2); bEntrar.setLayoutX( (pane.getPrefWidth() + 3.5 * bEntrar.getPrefWidth() - tfLogin.getPrefWidth()) / 2); bSair.setLayoutX( (pane.getPrefWidth() + 3.5 * bEntrar.getPrefWidth() - tfLogin.getPrefWidth()) / 2); tfLogin.setLayoutY((pane.getPrefHeight() - tfLogin.getPrefHeight()) / 2 - 20); tfSenha.setLayoutY((pane.getPrefHeight() - tfLogin.getPrefHeight()) / 2 + 20); bEntrar.setLayoutY((pane.getPrefHeight() - tfLogin.getPrefHeight()) / 2 - 20); bSair.setLayoutY((pane.getPrefHeight() - tfLogin.getPrefHeight()) / 2 + 20); pane.getChildren().addAll(tfLogin, tfSenha, bEntrar, bSair); Scene cena = new Scene(pane); stage.setScene(cena); stage.show(); }