Java FX fxml on Action

Jhon Smith picture Jhon Smith · Jun 27, 2013 · Viewed 43.3k times · Source

I want to add a method to a button which is defined in my Controller class

in the console is only an error which tells me that it couldn't find the method

here is the code

sample.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="sample.Controller">
    <children>
        <Button layoutX="126" layoutY="90" text="lololol" onAction="#test"  fx:id="button" />
    </children>
</AnchorPane>

and the Controller.java

package sample;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;

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

public class Controller implements Initializable
{
    @Override
    public void initialize(URL url, ResourceBundle resourceBundle)
    {
    }
    @FXML
    private void test(ActionEvent event)
    {
        System.out.println("lollolol");
    }
}

Answer

Puce picture Puce · Jun 27, 2013

Replace:

import java.awt.event.ActionEvent;

with:

import javafx.event.ActionEvent;