Galera, boa tarde!
Solicito um help, estou estudando o Livro do Bruno Oliveira - “JavaFX - Interfaces com qualidade para aplicações desktop” e bateu um erro de compilação que aparentemente é de Exception.
No exercicio teria que cria uma tela de Login e ao final ao compilar não executa, o código está exatamente como no livro. segue abaixo
import javax.swing.JOptionPane;
import org.w3c.dom.Node;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class LoginApp extends Application{
private AnchorPane pane;
private TextField txLogin;
private PasswordField txSenha;
private Button btEntrar, btSair;
private static Stage stage;
@Override
public void start(Stage stage) throws Exception{
initComponents();
initListeners();
Scene scene = new Scene(pane);
stage.setScene(scene);
//Remove a opção de maximizar a tela
stage.setResizable(false);
//Dá um título para a tela
stage.setTitle("Login - GolFX");
stage.show();
initLayout();
LoginApp.stage = stage;
}
public static Stage getStage(){
return stage;
}
public void initComponents(){
pane = new AnchorPane();
pane.setPrefSize(400, 300);
pane.setStyle("-fx-background-color: linear-gradient(from 0% 0% to 100% 100%, blue 0%, silver 100%);");
txLogin = new TextField();
txLogin.setPromptText("Digite aqui seu login");
txSenha = new PasswordField();
txSenha.setPromptText("Digite aqui sua senha");
pane.getChildren().addAll(txLogin, txSenha, btEntrar, btSair);
}
public void initLayout(){
//Largura dos componentes na tela
txLogin.setLayoutX((pane.getWidth() - txLogin.getWidth()) / 2);
txLogin.setLayoutY(50);
txSenha.setLayoutX((pane.getWidth() - txLogin.getWidth()) / 2);
txSenha.setLayoutY(100);
btEntrar.setLayoutX((pane.getWidth() - txLogin.getWidth()) / 2);
btEntrar.setLayoutY(150);
btSair.setLayoutX((pane.getWidth() - txLogin.getWidth()) / 2);
btSair.setLayoutY(200);
}
private void initListeners(){
btSair.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
fecharAplicacao();
}
});
btEntrar.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
logar();
}
});
}
private void fecharAplicacao(){
System.exit(0);
}
private void logar(){
if(txLogin.getText().equals("admin") && txSenha.getText().equals("casadocodigo")){
//TODO abrir a tela VitrineApp
} else{
JOptionPane.showMessageDialog(null, "Login e/ou senha inválidos", "Erro", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args){
launch(args);
}
}