有没有一种方法可以在FXML中检查鼠标右键点击



我正在用FXML为学校构建JavaFX中的Risk版本。现在,我们希望能够右键单击一个按钮来减少一个国家的兵力,左键单击它来增加兵力。左键单击非常不言自明,因为它只是一个onAction,但我们如何通过FXML检查右键单击按钮?

<Button id="ontario" fx:id="ontario" layoutX="356.0" layoutY="145.0" mnemonicParsing="false" onAction="#countryPressed" prefHeight="40.0" prefWidth="40.0" styleClass="CountryButton" stylesheets="@style.css" 
<font>
<Font name="System Bold" size="16.0" />
</font>
</Button>

要对javaFX中的鼠标右键单击做出反应,您将使用onMouseClicked事件处理程序,在MouseEvent中,使用方法getButton检查按下了哪个按钮,该方法将返回值为MIDDLEPRIMARYSECONDARYMouseButton

控制器代码:

@FXML
public void buttonClicked(MouseEvent event) {
switch (event.getButton()) {
case PRIMARY: //Left button
//Do something
break;
case SECONDARY: //Right button
//Do something else
break;
default:
//Ignore
break;
}
}

FXML:

<Button fx:id="ontario" onMouseClicked="#buttonClicked">

最新更新