1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Fxml anottations não mapeando campos

Bom dia pessoal,

Tenho o seguinte arquivo fxml contendo um TextField e um PasswordField

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.text.*?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="141.9998779296875" prefWidth="284.9998779296875" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="classes.Login">
  <children>
    <Pane prefHeight="155.9998779296875" prefWidth="284.9998779296875" AnchorPane.bottomAnchor="-32.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
      <children>
        <Label layoutX="14.0" layoutY="16.0" prefWidth="36.999908447265625" text="Login:">
          <font>
            <Font size="12.0" fx:id="x1" />
          </font>
        </Label>
        <Label font="$x1" layoutX="11.0" layoutY="44.0" text="Senha:" />
        <Button font="$x1" layoutX="58.0" layoutY="105.0" mnemonicParsing="false" onAction="#efetuarLogin" prefWidth="66.0" text="OK" textOverrun="CLIP" />
        <Button font="$x1" layoutX="133.0" layoutY="105.0" mnemonicParsing="false" onAction="#sair" text="Cancelar" textOverrun="ELLIPSIS" />
        <TextField layoutX="58.0" layoutY="14.0" prefWidth="200.0" />
        <PasswordField fx:id="senha" layoutX="58.0" layoutY="42.0" prefWidth="200.0" />
        <Label fx:id="error" font="$x1" layoutX="58.0" layoutY="74.0" text="Usuário ou senha incorretos." textFill="RED" visible="false" />
      </children>
    </Pane>
  </children>
</AnchorPane>

e a classe que manipula essas informações:

public class Login extends Application{
    private AnchorPane root;
    private FXMLLoader loader;

    @FXML private TextField login, error;
    @FXML private PasswordField senha;

    public static void main(String[] args){    
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        try {
                 loader = new FXMLLoader(Teste.class.getResource("../ui/login.fxml"));
        } catch (Exception e) {
          e.printStackTrace();
        }

        root = (AnchorPane) loader.load();

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

só que ao tentar por exemplo pegar o conteúdo de um campo da erro de NullPointerException

e se eu faço

login = new TextField();
System.out.println(login.getText());

nao imprime o texto informado no campo. o root e o loader não estão nulas, o erro só ocorre quando tento pegar o valor que esta no TextField..

Agradeço se puderem me ajudar e desculpa se errei em algo na postagem...

abs

  • Olá @gabriel_nunes, não precisa colocar [RESOLVIDO] no seu titulo não. Basta marcar uma resposta como correta.

    Leonardo Wolter   06 de dez de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java javafx ou faça a sua própria pergunta.