示例#1
0
  @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);
  }
示例#2
0
  @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();
  }