GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JavaFX não reconhecendo onAction

javafx
Tags: #<Tag:0x00007fd70f13f220>

#1

Olá. Estou fazendo um projetinho com JavaFX e ele não reconhece meus onAction.

FXML:

<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="385.0" prefWidth="240.0" tabClosingPolicy="UNAVAILABLE" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="projetos.projects.doncamatic.op.Controller">
  <tabs>
    <Tab text="Gerar tema">
      <content>
        <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
               <children>
                  <Label layoutX="100.0" layoutY="117.0" prefHeight="17.0" prefWidth="41.0" text="TEMA:" />
                  <TextField id="txtTemaGerado" fx:id="txtTemaGerado" editable="false" layoutX="35.0" layoutY="134.0" />
                  <Button fx:id="btnGerar" layoutX="93.0" layoutY="204.0" mnemonicParsing="false" onAction="#gerarTema" text="Gerar" />
                  <Text layoutX="71.0" layoutY="341.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Dev | 2019">
                     <font>
                        <Font size="10.0" />
                     </font>
                  </Text>
               </children></AnchorPane>
      </content>
    </Tab>
//Código continua

Minha classe projetos.projects.doncamatic.op.Controller:

package projetos.projects.doncamatic.op;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;

import java.awt.event.ActionEvent;
import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable {

    private Consulta_Banco consulta_banco = new Consulta_Banco();

    @FXML
    protected Button btnGerar;

    @FXML
    protected Button btnSubmeter;

    public TextField getTxtInserirTema() {
        return txtInserirTema;
    }

    @FXML
    protected TextField txtInserirTema;

    @FXML
    protected TextField txtTemaGerado;

    @FXML
    public void gerarTema(ActionEvent event) {
        System.out.println("qualquer coisa");
    }

    @FXML
    public void inserirTema(ActionEvent event) {
        String query = getTxtInserirTema().getText().trim();
        consulta_banco.inserirTermo(query);
    }

    @Override
    public void initialize(URL location, ResourceBundle resources) {

    }
}

Ambos os onActions não são reconhecidos, todavia, os campos são. Qualquer ajuda é bem-vinda.


#2

Você importou o ActionEvent do pacote errado, o correto é:

import javafx.event.ActionEvent;

#3

Obrigado. Você é monstro! Vamos jogar LoL qualquer dia desses.