javafx - 按下键时单击 javafx 复选框不会改变状态
问题描述
我有一个非常简单的问题,在任何其他帖子中都找不到:
在 javafx15 / java15.0.1 中,我试图在按下例如 CONTROL 键的同时单击复选框......状态没有改变。
我试图抓住键(在复选框上有一个键事件),我确实抓住了按下的控制键......但是如果同时按下一个键,复选框的状态就不会改变。
如何让它以透明的方式工作?
这是说明问题的最基本的简单代码:
package checkboxkeypressed;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.stage.Stage;
public class CheckboxWhileKeyPressedNotWorking extends Application {
private CheckBox checkbox = new CheckBox();
@Override
public void start(Stage primaryStage) {
checkbox.setText("Click me while pressing a key...");
Scene scene = new Scene(checkbox, 200, 50);
primaryStage.setTitle("Checkbox cannot be ticked while a key is pressed !!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
任何帮助将不胜感激。
解决方案
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.stage.Stage;
public class CheckboxWhileKeyPressedNotWorking extends Application {
private final CheckBox checkbox = new CheckBox();
private boolean isControlKeyDown = false;
@Override
public void start(Stage primaryStage) {
checkbox.setText("Click me while pressing <CNTRL> key");
checkbox.setOnMouseClicked(e->{
if(isControlKeyDown){
checkbox.fire(); //change check box state
}
});
Scene scene = new Scene(checkbox, 300, 50);
scene.setOnKeyPressed(keyEvent -> {
isControlKeyDown = keyEvent.isControlDown();
});
scene.setOnKeyReleased(keyEvent -> {
isControlKeyDown = keyEvent.isControlDown();
});
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
推荐阅读
- python - How to plot a matplotlib line plot using colormap?
- umbraco - 仅在表格完成后在 Umbraco 中显示内容
- php - Share URL including URL parameter through Facebook
- reactjs - 在反应组件上使用 Laravel 项目 CSS
- c# - 运行总 C#
- python - 将列表中的元素弹出到列表中 [Python 3.x]
- webrtc - 如何使用 SimpleWebRTC 错误创建视频聊天应用程序网络
- powerbi - 具有自动刷新功能的 Power BI DirectQuery 报表
- css - 如何在 CSS 中制作离散宽度?
- wordpress - 优先顺序如何影响 WordPress 中的 add_action 和 do_action 链?