Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EventHandler<;T扩展事件>;在JavaFX中,类或接口_Java_Javafx - Fatal编程技术网

EventHandler<;T扩展事件>;在JavaFX中,类或接口

EventHandler<;T扩展事件>;在JavaFX中,类或接口,java,javafx,Java,Javafx,我选择了一个在屏幕上打印“Hello World”的基本示例,当鼠标单击时,代码如下所示 package sample; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene

我选择了一个在屏幕上打印“Hello World”的基本示例,当鼠标单击时,代码如下所示

package sample;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

/**
 *
 * @author gauravp
 */
public class Sample extends Application {

    /**
     * @param args the command line arguments
     */
    Button btn = new Button("ok");
    //Label l = new Label("Done");

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

    @Override
    public void start(Stage primaryStage) {

        primaryStage.setTitle("First Stage");


        //Created anonymous inner class EventHandler<ActionEvent>
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                    System.out.print("Hello World !!");


            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}
包装样品;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.layout.StackPane;
导入javafx.stage.stage;
/**
*
*@author gauravp
*/
公共类示例扩展了应用程序{
/**
*@param指定命令行参数
*/
按钮btn=新按钮(“确定”);
//标签l=新标签(“完成”);
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
公共无效开始(阶段primaryStage){
初级阶段。设置标题(“第一阶段”);
//创建了匿名内部类EventHandler

语法

    new EventHandler<ActionEvent>() {
        @Override // <- notice the annotation, it overrides from the interface.
        public void handle(ActionEvent event) {
                System.out.print("Hello World !!");
        }
    }
neweventhandler

回答您的问题:EventHandler是一个接口,此代码实际上并不创建它的实例,而是新声明的匿名类的实例。

语法

    new EventHandler<ActionEvent>() {
        @Override // <- notice the annotation, it overrides from the interface.
        public void handle(ActionEvent event) {
                System.out.print("Hello World !!");
        }
    }
neweventhandler


回答您的问题:EventHandler是一个接口,这段代码实际上并没有创建它的实例,而是新声明的匿名类的实例。

您看到的是一个接口

它是接口“当场”的一个实现,而不需要创建一个单独的类来实现接口


匿名内部类通常用于GUI组件的事件处理程序,如您的示例代码所示。

您看到的是一个

它是接口“当场”的一个实现,而不需要创建一个单独的类来实现接口


匿名内部类通常用于GUI组件的事件处理程序,如您的示例代码所示。

请搜索匿名内部类。@Sachin Karjatkar匿名内部类的功能是明确的,但混淆的是实例化时使用的EventHandler接口,如果它是一个类e没有问题。我不是说内部类,这是匿名的。基本上你是为这个EventHandler接口提供了一个匿名实现。请参阅google以获得匿名内部类。@Sachin Karjatkar匿名内部类的功能很清楚,但混淆的是关于正在使用的EventHandler接口w在实例化过程中,如果它是一个类,则没有问题。我不是说内部类,这是匿名的。基本上,您是为这个EventHandler接口提供匿名实现。请参阅