举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > javafx按钮触发 JavaFX触摸事件

javafx按钮触发 JavaFX触摸事件

2023-05-20 19:17 Java教程

javafx按钮触发 JavaFX触摸事件

javafx按钮触发

JavaFX按钮触发是一种常见的用户界面交互方式,它可以让用户在应用程序中执行特定的操作。JavaFX提供了一系列的API来处理按钮触发,这些API可以帮助开发人员快速实现按钮触发功能。

要使用JavaFX来处理按钮触发,首先要创建一个Button对象:

Button btn = new Button("Click Me!");

然后,为该Button对象注册一个ActionEvent处理器:

btn.setOnAction(new EventHandler<ActionEvent>() { 
    @Override 
    public void handle(ActionEvent event) { 
        // Do something when button is clicked 
    } 
});

当用户单击该按钮时,就会调用handle()方法来执行相应的操作。在handle()方法中,开发人员可以根据具体情况来执行不同的代码逻辑。例如:显示一个新的对话框、打开文件、显示新的界面等。

此外,JavaFX还允许开发人员使用不同的图形元素来代

JavaFX触摸事件

JavaFX教程 - JavaFX触摸事件


触摸事件允许我们使用触摸屏与JavaFX应用程序交互。

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.TouchEvent;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
//from w w w .  j a  va  2s  .  c  o m
public class Main extends Application {
  int touchId = -1;
  double touchx, touchy;
  public static void main(String[] args) {
    Application.launch(args);
  }

  @Override
  public void start(Stage primaryStage) {
    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);
   
    
    final Rectangle rect = new Rectangle();
    rect.setWidth(100);
    rect.setHeight(100);
    root.getChildren().add(rect);

    rect.setOnTouchPressed(new EventHandler<TouchEvent>() {
        @Override public void handle(TouchEvent event) {
            if (touchId == -1) {
                touchId = event.getTouchPoint().getId();
                touchx = event.getTouchPoint().getSceneX() - rect.getTranslateX();
                touchy = event.getTouchPoint().getSceneY() - rect.getTranslateY();
            }
            event.consume();
        }
    });

    rect.setOnTouchReleased(new EventHandler<TouchEvent>() {
        @Override public void handle(TouchEvent event) {
            if (event.getTouchPoint().getId() == touchId) {
                touchId = -1;
            }
            event.consume();
        }
    });

    rect.setOnTouchMoved(new EventHandler<TouchEvent>() {
        @Override public void handle(TouchEvent event) {
            if (event.getTouchPoint().getId() == touchId) {
              rect.setTranslateX(event.getTouchPoint().getSceneX() - touchx);
              rect.setTranslateY(event.getTouchPoint().getSceneY() - touchy);
            }
            event.consume();
        }
    });


    primaryStage.setScene(scene);
    primaryStage.show();
  }
}

上面的代码生成以下结果。

null


阅读全文
以上是VUE中文网为你收集整理的javafx按钮触发 JavaFX触摸事件全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们