Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Dúvida sobre JavaFx

$
0
0

@bruno.daniel escreveu:

Bom dia galera,

Estou começando a estudar sobre JavaFx, procurando aprender através do livro da Casa do Código sobre esse assunto, porem logo nos exercicios iniciais já me deparei com a dificuldade de conseguir rodar uma aplicação, gostaria de pedir os amigos um apoio para descobrir o problema, segue o código abaixo:

`

import javax.swing.JOptionPane;
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();
	initLayout();
	initListeners();
	Scene scene = new Scene(pane); // para exibir o form é necessário criar uma cena add o form nele
	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();
	
	
	LoginApp.stage = stage;
}


public static Stage getStage() {

	return stage;
}


private void initComponents() {
	
	pane = new AnchorPane();		// criando um form
	pane.setPrefSize(400, 300);		// Indica a largura e altura do painel principal.
	pane.setStyle("-fx-background-color: linear-gradient(from 0% 0% to 100% 100%, green 0%, silver 100%);"); // css no form
			
	// criando uma caixa de texto
	TextField txLogin = new TextField();
	txLogin.setPromptText("Digite aqui seu login");
	
	// criando uma caixa para senha
	PasswordField txSenha = new PasswordField();
	txSenha.setPromptText("Digite aqui sua senha");
	
	// dois botões
	Button btEntrar = new Button("Entrar");
	Button btSair = new Button("Sair");
	
	// add todos os componentes criados ao form
	pane.getChildren().addAll(txLogin, txSenha, btEntrar, btSair);
	
}      



private void initLayout() {
	
	/* Posicionando os componentes no form */
	// Node.getWidth() = Retorna a largura do componente.
	txLogin.setLayoutX((pane.getWidth() - txLogin.getWidth()) / 2); 
	txLogin.setLayoutY(50);
	
	txSenha.setLayoutX((pane.getWidth() - txSenha.getWidth()) / 2);
	txSenha.setLayoutY(80);
	
	btEntrar.setLayoutX((pane.getWidth() - txSenha.getWidth()) / 2);
	btEntrar.setLayoutY(120);
	
	btSair.setLayoutX(180);
	btSair.setLayoutY(120);
}
	
	
	
	
private void initListeners() {
	
	//metodo indicará a ação do botão
	/*
	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")) {
			
		try {
		
			new VitrineApp().start(new Stage());
			LoginApp.getStage().close();
		} 
		catch (Exception e) {
		
			e.printStackTrace();
		}
	} 
	else {
	
		JOptionPane.showMessageDialog(null, "Login e/ou senha inválidos", "Erro", JOptionPane.ERROR_MESSAGE);
	}
}


public static void main(String[] args) {
	
	launch(args);				// vem da classe Application e faz com que o form possa ser exibido
		
}

}

`

O erro que está ocorrendo ao executar a aplicação é o seguinte:

`

Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
    Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
at java.lang.Thread.run(Unknown Source)
 Caused by: java.lang.NullPointerException
at LoginApp.initLayout(LoginApp.java:79)
at LoginApp.start(LoginApp.java:26)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
... 1 more

Exception running application LoginApp

`

Desde já agradeço por qualquer ajuda.

Mensagens: 2

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>