【问题标题】:Reading Special MouseButtons阅读特殊鼠标按钮
【发布时间】:2018-05-21 21:54:51
【问题描述】:

我有兴趣从资源管理器鼠标按钮(鼠标侧面的特殊按钮通常用于在网络浏览器上前进和后退)捕获输入。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.scene.input.MouseButton;
import static java.lang.System.*;

public class MouseThing extends Application
{
    @Override
    public void start(Stage stage) throws Exception
    {
        Pane pane = new Pane();

        pane.setOnMousePressed(e -> {
            if(e.getButton() == MouseButton.PRIMARY)
                out.println("LEFT"); 
            if(e.getButton() == MouseButton.SECONDARY)
                out.println("RIGHT");      
            if(e.getButton() == MouseButton.MIDDLE)
                out.println("MIDDLE");    
            if(e.getButton() == MouseButton.NONE)
                out.println("OTHER");  
            // How read explorer buttons?  
            out.println("click");
        });

        Scene scene = new Scene(pane, 300, 100);
        stage.setTitle("Demo");
        stage.setScene(scene);
        stage.show();
    }
}

仅举个例子,我想记录一下前进和后退按钮被激活的情况。在这一点上,我唯一能实现的交互是左键、右键和中键。按鼠标上的forwardback 按钮甚至不会注册click 打印。

有这篇关于 Javascript 的帖子:JS special mouse buttons,但它对我的目的没有用。

【问题讨论】:

    标签: java javafx mouseevent mouse-buttons


    【解决方案1】:

    从 JavaFX 12 开始,鼠标上的 forwardback 按钮被识别,因此您可以这样做:

    pane.setOnMousePressed(e -> {
        if(e.getButton() == MouseButton.PRIMARY)
            out.println("LEFT");
        if(e.getButton() == MouseButton.SECONDARY)
            out.println("RIGHT");
        if(e.getButton() == MouseButton.MIDDLE)
            out.println("MIDDLE");
        if(e.getButton() == MouseButton.BACK)
            out.println("BACK");
        if(e.getButton() == MouseButton.FORWARD)
            out.println("FORWARD");
        if(e.getButton() == MouseButton.NONE)
            out.println("NONE");  
        out.println("click");
    });
    

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多