JavaFX桌面應用開發-鼠標事件和鍵盤事件


鼠標相關事件的操作
初始代碼

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等輸入器的點擊都會運行,不是僅僅監聽鼠標

//單擊事件

//綁定事件源
button.setOnAction(new EventHandler<ActionEvent>() {
//重寫實現方法
@Override
public void handle(ActionEvent event) {
//執行事件發生后的操作
System.out.println("這是任意鍵的單擊事件");

}
});
2.2:鼠標單擊事件(僅僅對鼠標起作用)
注意:MouseEvent提供了很多鼠標的操作方法 如下

 

//鼠標單擊事件 左鍵 右鍵 中鍵單擊都有效

//綁定事件源 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類型的連續點擊次數,可以用它來判斷單擊 雙擊 或者多擊事件

//鼠標雙擊 多擊事件

//綁定事件源 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());

}
});
--------------------- 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM