当在TextField内部按下Enter键时,JavaFX程序将切换全屏显示

时间:2018-12-16 03:21:01

标签: java javafx fullscreen textfield

每当同时按下两个键盘键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 个答案:

答案 0 :(得分:2)

在这一行:

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

ALT_ANY的意思是“我不在乎是否按下Alt键。”

改为使用ALT_DOWN

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