EventHandler<;T扩展事件>;在JavaFX中,类或接口
我选择了一个在屏幕上打印“Hello World”的基本示例,当鼠标单击时,代码如下所示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
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接口提供匿名实现。请参阅