javafx Minesweeper:如何区分鼠标左右键输入

总吉姆

我正在开发Javafx Minesweeper游戏,目前仅使用鼠标左键输入。我也想使用鼠标右键,以便用户可以标记可能的炸弹。我查看了Oracle网站上的Button类,它说:

“当按下按钮并释放时,将发送一个ActionEvent。您的应用程序可以通过实现EventHandler处理ActionEvent来基于此事件执行某些操作。按钮还可以通过实现EventHandler处理MouseEvent来响应鼠标事件。”

https://docs.oracle.com/javafx/2/api/javafx/scene/control/Button.html

我已经尝试了几种不同的方法,但都没有成功。

包括我当前的EventHandler代码。如果有人能解释处理鼠标右键/鼠标单击的最佳方法,或者向我指出在哪里可以找到该信息的正确方向,我们将不胜感激。

MineButton是扩展Button的自定义类。我想右键单击以标记为“ m”并更改单元格颜色,而单击鼠标左键将保持不变。

    for (int row = 0; row < 8; row++){
        for (int col = 0; col <8; col++){

            MineButton button = new MineButton(row, col);
            button.setPrefSize(100, 100);
            button.setText("?");
            button.setStyle("-fx-font: 22 arial; -fx-base:#dcdcdc;");
            button.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {

                    if ( button.isAMine() == true){
                        button.setText("B");

                        for( int row1 = 0; row1 < 8; row1++){
                            for ( int col1 = 0; col1 < 8; col1++){

                            if (mineButtons[row1][col1].isAMine() == true){
                                    mineButtons[row1][col1].setText("B");
                                    mineButtons[row1][col1].setStyle("-fx-   font: 22 arial; -fx-base: #dc143c;");
                                }
                            }
                        }
                    }
                    else{

                        recursion(mineButtons, button.getX(), button.getY());

                    }       
                }   
            }); 
普拉萨娜·文卡特(Prasanna Venkat)

如果您想处理MouseEvent,请使用此代码。它将起作用。

button.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                if(event.getButton() == MouseButton.SECONDARY){
//                  Type code to set flag here
                }
            }
        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

右键单击JavaFX for Minesweeper

来自分类Dev

JavaFX如何定位鼠标

来自分类Dev

如何在Javafx(fxml)的表格视图中的单元格上单击鼠标右键?

来自分类Dev

Javafx,如何检测鼠标位置?

来自分类Dev

JavaFX TableView过滤器鼠标右键选择

来自分类Dev

鼠标进行JavaFX转换

来自分类Dev

JavaFX鼠标坐标

来自分类Dev

JavaFX - 如何通过鼠标获取信息

来自分类Dev

如何居中JavaFX控件

来自分类Dev

JavaFX:如何清除画布

来自分类Dev

如何使用JavaFX KeyListeners?

来自分类Dev

JavaFX:如何滑动图像

来自分类Dev

如何关闭Javafx?

来自分类Dev

如何更新 JavaFX 画布?

来自分类Dev

如何平移 JavaFX LineChart

来自分类Dev

JavaFX:右键单击菜单项

来自分类Dev

如何在JavaFX中检测到鼠标单击?

来自分类Dev

JavaFX如何在单击鼠标时清除TextField

来自分类Dev

如何根据鼠标位置显示工具提示?-JavaFX

来自分类Dev

Javafx 8如何使鼠标光标不可见?

来自分类Dev

如何链接这两个鼠标事件?JavaFx

来自分类Dev

JavaFX-如何使ComboBox增长?

来自分类Dev

如何控制JavaFX Tooltip的延迟?

来自分类Dev

如何从javafx imageView获取byte []?

来自分类Dev

如何淡入隐藏的JavaFX标签

来自分类Dev

如何从javafx标签清除图像

来自分类Dev

如何调整JavaFX图片的大小?

来自分类Dev

如何使Javafx记住表单值?

来自分类Dev

如何通过JavaFx主阶段