代码之家  ›  专栏  ›  技术社区  ›  LuminousNutria

当在文本字段内按Enter键时,javafx程序切换全屏。

  •  1
  • LuminousNutria  · 技术社区  · 6 年前

    当同时按下两个键盘键(alt和enter)时,我让程序进入全屏。这基本上按预期工作。

    问题是,只要按下Enter键,我的程序就会切换到全屏模式。按alt键没关系。

    我怎样才能使程序在只按Enter键时不切换全屏模式。

    我正在使用OpenJFX 11。

    package application;
    
    import javafx.application.Application;
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import javafx.scene.control.TextField;
    import javafx.scene.input.KeyCode;
    import javafx.scene.input.KeyCodeCombination;
    import javafx.scene.input.KeyCombination;
    import javafx.scene.input.KeyEvent;
    import javafx.scene.layout.GridPane;
    
    
    public class Main extends Application {
       final KeyCombination FullScreenKeyCombo = 
             new KeyCodeCombination(KeyCode.ENTER, KeyCombination.ALT_ANY);
    
        @Override
        public void start(Stage stage) {
                GridPane grid = new GridPane();
                Scene scene = new Scene(grid, 1600, 900);
                stage.setScene(scene);
                stage.show();
    
             // create TextField and add to GridPane
             TextField textField = new TextField();
             grid.add(textField, 0, 0);
    
             // toggle full-screen when alt + enter is pressed
             scene.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
    
                if(FullScreenKeyCombo.match(event)) {
    
                   stage.setFullScreen(!stage.isFullScreen());
    
                }
             });
    
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   VGR    6 年前

    在此行中:

    new KeyCodeCombination(KeyCode.ENTER, KeyCombination.ALT_ANY);
    

    alt_any表示__I don__t在乎是否按下了alt键。__

    使用 ALT_DOWN 而是:

    new KeyCodeCombination(KeyCode.ENTER, KeyCombination.ALT_DOWN);