只要同时按下键盘上的 Alt 和 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);
}
}
最佳答案
在这一行中:
new KeyCodeCombination(KeyCode.ENTER, KeyCombination.ALT_ANY);
ALT_ANY 表示“我不在乎 Alt 键是否被按下。”
使用ALT_DOWN相反:
new KeyCodeCombination(KeyCode.ENTER, KeyCombination.ALT_DOWN);
关于当在 TextField 内按下 Enter 键时,JavaFX 程序会切换全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53799162/