鼠標相關事件的操做
初始代碼java
package application;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
//建立button類
//注意:Group容器組會自適應調節node節點的高、寬 以容納node節點的內容 例如:若是下面Button的text內容比較多 那麼對應的Button會相應加長
Button button = new Button("Button1");
button.setLayoutX(10); //設置起始點的X軸座標
button.setLayoutY(10); //設置起始的Y軸座標
//設置button的寬度 高度
button.setPrefWidth(100);
button.setPrefHeight(100);
/**
*
* 鼠標的點擊事件
* */
//單擊事件
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("這是鼠標的單擊事件");
}
});
//設置Group
Group group = new Group();
group.getChildren().add(button);
//建立場景Scene
Scene scene = new Scene(group);
primaryStage.setScene(scene);
//設置stage的寬度 高度
primaryStage.setHeight(500);
primaryStage.setWidth(500);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
2.1:單擊事件
注意:這個單擊事件對與鼠標(左鍵 右鍵 中間滑輪),鍵盤任意鍵,TouchPad等輸入器的點擊都會運行,不是僅僅監聽鼠標node
//單擊事件
//綁定事件源
button.setOnAction(new EventHandler<ActionEvent>() {
//重寫實現方法
@Override
public void handle(ActionEvent event) {
//執行事件發生後的操做
System.out.println("這是任意鍵的單擊事件");
}
});
2.2:鼠標單擊事件(僅僅對鼠標起做用)
注意:MouseEvent提供了不少鼠標的操做方法 以下app
//鼠標單擊事件 左鍵 右鍵 中鍵單擊都有效
//綁定事件源 EventHandler傳入Event爲MouseEvent
button.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
//重寫EventHandler接口實現方法
@Override
public void handle(MouseEvent event) {
//執行事件發生後的動做
System.out.println("這是鼠標單擊事件 僅僅對鼠標單擊有用");
}
});
2.3:鼠標的雙擊&多擊事件
event.getClickCount()能夠得到int類型的連續點擊次數,能夠用它來判斷單擊 雙擊 或者多擊事件ide
//鼠標雙擊 多擊事件
//綁定事件源 EventHandler傳入Event爲MouseEvent
button.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
//重寫EventHandler接口實現方法
@Override
public void handle(MouseEvent event) {
//執行事件發生後的動做
if(event.getClickCount() == 2){ //連續點擊次數等於2 則執行下列操做
System.out.println("鼠標雙擊事件");
}
}
});
2.4:鼠標左鍵事件
MouseButton有下列操做 來判斷點擊的事左鍵 右鍵 仍是中鍵接口
//鼠標雙擊 多擊事件
//綁定事件源 EventHandler傳入Event爲MouseEvent
button.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
//重寫EventHandler接口實現方法
@Override
public void handle(MouseEvent event) {
//執行事件發生後的動做
if(event.getClickCount() == 2 && event.getButton().name().equals(MouseButton.PRIMARY.name())){ //連續點擊次數等於2 則執行下列操做
System.out.println("鼠標雙擊事件--->左擊事件");
}
}
});
3:鍵盤事件的監聽
3.1:鍵盤按下的事件
//鍵盤事件
//綁定事件源 按鍵按下
button.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
//event.getCode().name()獲取按鍵的值
System.out.println("鍵盤按下了按鍵=" + event.getCode().name());
}
});
3.2:鍵盤釋放的事件
//鍵盤事件
//綁定事件源 按鍵釋放
button.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
//event.getCode().name()獲取按鍵的值
System.out.println("鍵盤釋放了按鍵=" + event.getCode(http://www.my516.com).name());
}
});
--------------------- 事件