只要用户点击按钮,JButton对象就会创建一个ActionEvent对象,然后调用listener.actionPerformed(event) 传递事件对象。可以将多个监听器对象添加到一个像按钮这样的事件源中。这样一来,只要用户点击按钮,按钮就会调用所有监听器的actionPerformed方法。 图8-1显示了事件源、事件监听器和事件对象之间的协作关系。 实例:处理按钮...
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class EventHandlerExample { public static void main(String[] args) { JFrame frame = new JFrame("Event Handler Example"); JButton button = new JButton("Clic...
在Java中使用 EventHandler,可以使用 JavaFX 库来实现。下面是一个简单的示例代码: 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...
EventHandler的另一种最简单用法是从侦听器接口(通常是一个事件对象)中的方法的第一个参数中提取属性值,并用其设置目标对象中的属性值。在以下示例中,将创建一个ActionListener,它将目标 (myButton) 对象的nextFocusableComponent属性设置为事件的 "source" 属性的值。 EventHandler.create(ActionListener.class, myBu...
在JavaFX中,EventHandler常常与setOnAction,setOnMouseClicked,setOnKeyPressed等方法一起使用,以设置对特定事件的响应。 以下是一个简单的例子,演示了如何在JavaFX中使用EventHandler来处理按钮点击事件: java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import ...
new ActionListener() { public void actionPerformed(ActionEvent e) { myButton.setNextFocusableComponent((Component)e.getSource()); } } 也可以创建一个EventHandler ,它只是将传入的事件对象传递给目标的动作。 如果第四个EventHandler.create参数是一个空字符串,那么该事件只是传递: ...
JButton组件初始化代码片断已经明确阐述了按钮被创建后放置于窗体上,关键在于本代码片断的以下语句: btnPress.addActionListener(newButtonEventHandler(this)); 该语句就是向事件源植入了侦听器对象ButtonEventHandler,该类实现了ActionListener结构,因此JButton类的对象btnPress这个时候已经具有了处理用户点击按钮的能力了。
事件监听器(处理者)通常是一个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对应的接口。例如,一个JButtonHandler类之所以能够处理ActionEvent事件,原因在于它实现与ActionEvent事件对应的接口ActionListener。每个事件类都有一个与之相对应的接口。
("点击我");// 为按钮添加点击事件button.setOnAction(event->{System.out.println("按钮被点击了!");});StackPaneroot=newStackPane();root.getChildren().add(button);Scenescene=newScene(root,300,250);primaryStage.setTitle("JavaFX 按钮示例");primaryStage.setScene(scene);primaryStage.show();}public...
if ((event.getModifiersEx( )&InputEvent.BUTTON3_DOWN__MASK)! = ) . . . //code for right click 在列举的简单例子中,提供了mousePressed和mouseClicked方法。当鼠标点击在所有小方块的像素之外时,就会绘制一个新的小方块。这个操作是在mousePressed方法中实现的,这样可以让用户的操作立即得到响应,而不必等到...