使用键盘键选中带有 JavaFX 的复选框

JordanTheNoob

嘿,所以我正在为朋友开发具有随机延迟等的自动点击器,但他要求我使用 javafx 制作 UI。我说好的,但现在我需要按“r”键来切换自动点击器。我的代码如下,我决定了复选框,所以我可以知道它是否被切换,但我想这样做,以便我可以按 r 选中复选框,然后再次按取消选中,从而停止自动点击器。提前致谢。

public class MainFrame extends Application {

	CheckBox toggleclick;

	 @Override
	    public void start(Stage primaryStage) {

		 	GridPane grid = new GridPane();
	        grid.setAlignment(Pos.CENTER);
	        grid.setHgap(10);
	        grid.setVgap(10);
	        grid.setPadding(new Insets(25, 25, 25, 25));

		 	Text scenetitle = new Text("11.1 CPS Clicker");
	        scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 30));
	        grid.add(scenetitle, 0, 0, 2, 1);

	        CheckBox cb = new CheckBox();
	        cb.setText("Begin Clicking");


	        HBox hbBtn = new HBox(10);
	        hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
	        hbBtn.getChildren().add(cb);
	        grid.add(hbBtn, 1, 4);

	        final Text actiontarget = new Text();
	        grid.add(actiontarget, 1, 6);

	        cb.setOnAction(new EventHandler<ActionEvent>() {

	            @Override
	            public void handle(ActionEvent e) {
	                
	            	while (true) {
	        			try {
	        				Mouse.sendLeftClick();
	        			} catch (AWTException e1) {
	        				e1.printStackTrace();
	        			}
	            	    double deviation = 22;
	            	    double mean = 90;
	            	    int min = 43;
	            	    int max = 198;
	            	    Random r = new Random();
	            	    double randGauss = (r.nextGaussian() * deviation);
	            	    long delayPreClamp = Math.round(randGauss + mean);
	            	    long delay = (long) MathUtil.clamp(delayPreClamp, min, max);
	            	    try {
	            	        Thread.sleep(delay);
	            	    } catch (InterruptedException e2) {
	            	        e2.printStackTrace();
	            	    }
	            	}
	            }
	        });

	        Scene scene = new Scene(grid, 325, 250);
	        primaryStage.setScene(scene);
	        primaryStage.show();

	        primaryStage.setTitle("AutoClicker");
	        primaryStage.setScene(scene);
	        primaryStage.show();
	    }
	 public static void main(String[] args) {
	        launch(args);
	    }
}

艾尔斯

尝试创建一个新的 EventHandler 来定义按下键时的事件,如下所示:

cb.setOnKeyPressed(new EventHandler<KeyEvent>() {
                @Override
                public void handle(KeyEvent event) {
                   if("R".equals(ke.getText().toUpperCase() )) {
                       if(cb.isSelected()) {
                          cb.setSelected(false);
                        } else {
                          cb.setSelected(true);
                        }
                   }
                });

ke.getText() 返回按下的键的值,如果是 R,则选中或取消选中复选框。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有复选框的Javafx 8 Tableview选择

来自分类Dev

JavaFX CheckBoxTreeItem检测何时选中或未选中复选框

来自分类Dev

如何在 JavaFX 和 FXML 的 tableview 中选择所有复选框来创建复选框?

来自分类Dev

如何创建带有“不再询问”复选框的JavaFX Alert?

来自分类Dev

JavaFX-有没有办法循环一个复选框?

来自分类Dev

JavaFX:如何在树状视图中使用复选框和按钮?

来自分类Dev

如何使用复选框显示javafx密码字段中的内容

来自分类Dev

javafx使用复选框从数据库填充动态tableview

来自分类Dev

JavaFX CSS复选框样式

来自分类Dev

JavaFX CSS复选框样式

来自分类Dev

JavaFX三态复选框

来自分类Dev

选中复选框nullPointerException

来自分类Dev

默认选中复选框

来自分类Dev

选中的复选框数

来自分类Dev

选中hange复选框

来自分类Dev

默认选中复选框

来自分类Dev

选中项目复选框

来自分类Dev

复选框未选中

来自分类Dev

复选框已选中

来自分类Dev

强制选中复选框

来自分类Dev

默认选中复选框

来自分类Dev

取消选中复选框

来自分类Dev

无法选中复选框

来自分类Dev

选中复选框时更改复选框颜色?

来自分类Dev

如果复选框已选中,则隐藏复选框

来自分类Dev

如何根据选中的复选框禁用复选框?

来自分类Dev

选中复选框时移动复选框标签

来自分类Dev

选中复选框时更改复选框颜色?

来自分类Dev

未选中子复选框时如何选中复选框主复选框?