Salve a tutti,
sto creando un programma con la struttura switch-case-default e vorrei fare in modo che alla pressione del tasto "esc", si chiuda il programma. Grazie in anticipo
Salve a tutti,
sto creando un programma con la struttura switch-case-default e vorrei fare in modo che alla pressione del tasto "esc", si chiuda il programma. Grazie in anticipo
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
è una semplice GUI (classe swing).
Se hai un JFrame e vuoi realizzare la chiusura tramite tasto Escape, la cosa più completa e generale che si può fare è applicare un key-binding al JRootPane del frame.
Abbozzato:
codice:public class MyFrame extends JFrame { //.... public MyFrame() { //....... JRootPane rootPane = getRootPane(); KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(stroke, "escape-per-chiudere"); rootPane.getActionMap().put("escape-per-chiudere", new AbstractAction() { public void actionPerformed(ActionEvent actionEvent) { dispose(); } }); } //.......
La stringa "escape-per-chiudere" è arbitraria, purché sia abbastanza significativa/distintiva. Serve solo per fare da "ponte" tra il KeyStroke e la Action.
La gestione del Escape è generale per tutto il frame, indipendentemente da quale componente ha il focus .... a meno che un componente specifico non gestisca e consumi l'Escape per conto suo.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ciao e grazie della risposta. Questo frammento di codice lo devo aggiungere al programma principale nel Main?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ok grazie