public class CustomizedHTMLEditor extends HTMLEditor
{
public CustomizedHTMLEditor()
{
addEventFilter(KeyEvent.KEY_RELEASED, event -> {
if (event.getCode() == KeyCode.U && event.isAltDown()) {
System.out.println("Alt+U is pressed");
event.consume();
event.isShortcutDown();
final KeyCode platformShortcutKey = Toolkit.getToolkit().getPlatformShortcutKey();
System.out.println(platformShortcutKey.getName());
}
});
}
}
Процесс 1:
public class CustomizedHTMLEditorMain extends Application
{
public static void main(String[] args)
{
launch(args);
}
@Override public void start(Stage primaryStage)
{
CustomizedHTMLEditor customizedHTMLEditor = new CustomizedHTMLEditor();
customizedHTMLEditor.setFocusTraversable(true);
customizedHTMLEditor.requestFocus();
customizedHTMLEditor.toFront();
primaryStage.setScene(new Scene(customizedHTMLEditor));
primaryStage.show();
}
}
Процесс 2:
public class CutomizedHTMLPanel extends JDialog
{
CutomizedHTMLPanel()
{
PlatformImpl.startup(() -> {
});
PlatformImpl.runAndWait(() -> {
final JFXPanel jfxPanel = new JFXPanel();
jfxPanel.setScene(new Scene(new CustomizedHTMLEditor()));
add(new JPanel().add(jfxPanel));
pack();
});
}
public static void main(String[] args)
{
final CutomizedHTMLPanel panel = new CutomizedHTMLPanel();
panel.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
panel.setVisible(true);
}
}
Когда я нажимаю ALT + U в редакторе:
В процессе 1 событие успешно используется, и в редакторе не вводится символ (в данном случае «U»).
В процессе 2 символ вводится в редакторе.
Я хочу использовать сочетание клавиш ALT + U в процессе 2, и когда мы нажимаем ALT + U, не следует вводить символы.