Salve,
non ricordo la combinazione di tasti per chiudere una GUI lanciata da riga di comando e restituire il controllo al prompt... Ho provato Ctrl + tutto l'alfabeto, Alt + tutto l'alfabeto...
Salve,
non ricordo la combinazione di tasti per chiudere una GUI lanciata da riga di comando e restituire il controllo al prompt... Ho provato Ctrl + tutto l'alfabeto, Alt + tutto l'alfabeto...
Non capisco ... forse intendi
Alt+F4
No MP tecnici (non rispondo nemmeno!), usa il forum.
Sì ma non funziona perché agisce sulla X della finestra che è cliccabile ma non funzionante.
Se intendi che vuoi proprio terminare forzatamente l'esecuzione, su windows si usa Ctrl + c, ma se non sbaglio dovrebbe funzionare anche su linux, non so cosa tu stia usando, magari prova a ripremerlo più volte ...
Solo che dovrebbe esserci una circostanza abbastanza particolare per dover terminare manualmente l'esecuzione di un programma, o andare in esplora risorse per terminare il processo, non dovrebbe accadere.
Cosa intendi dire con la X della finestra non è funzionante ? La GUI la sviluppi in un tuo programma? Perché allora converrebbe settare il setDefaultCloseOperation a JFrame.EXIT_ON_CLOSE. Se è un programma esterno, è dovuto al fatto che "crasha" tutto e non risponde più ai comandi (ma comunque non è un buon segno) ?
È una semplice sequenza di comandi che ho visto fare con successo su Windows 10 e mi servirebbe su 8.1.
Devo catturare delle screenshot per mostrare le varie differenze a parità di codice cambiando solo il layout manager; quando eseguo da prompt apre la GUI che è puramente grafica, un contenitore di button, textfield, label senza ActionListener (per ora). Vorrei potere chiudere la GUI senza dovere chiudere il prompt per compilare rapidamente un altro codice ma la GUI attiva impedisce l'accesso a prompt (non posso digitare a riga di comando) e la X per chiudere la GUI (equivalente ad Alt+F4) non risponde ai click.
Perché semplicemente la shell, di norma, attende la fine del processo lanciato. Vale in generale. A meno che avvii un processo in maniera differente, senza causare attesa.
Senza vedere il codice che hai scritto non ne sappiamo molto di più ....
Onestamente non ho mai usato Windows 8.1 ma non dovrebbe esserci alcuna differenza, Ctrl + C dovrebbe funzionare ...
Cosa intendi esattamente con la X non risponde ai click?
L'interfaccia è congelata e non succede nulla oppure la finestra viene effettivamente nascosta ma l'esecuzione non termina?
Se è l'ultima, questo è appunto il comportamento che ha un JFrame quando viene chiuso, ed è quello che dicevo nel post precedente. L'opzione di default è HIDE_ON_CLOSE, che nasconde solo la finestra senza terminare l'applicazione.
Questo è in genere fastidioso, e di solito si setta setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE), per fare in modo che la chiusura di un JFrame, almeno quello "principale", termini effettivamente l'applicazione.
Ma almeno che tu non abbia esplicitamente settato l'opzione a DO_NOTHING_ON_CLOSE, la finestra dovrebbe quantomeno nascondersi, se "non risponde ai click" ci dev'essere qualcosa sotto...
PS: Spero di non aver frainteso quanto dicessi e di non aver detto cose che sai già, in caso porta pazienza
Ultima modifica di Ansharja; 18-07-2017 a 22:45
Per ora sto usando AWT, non Swing ma non credo sia significativo ai fini del problema, dato che quando ho visto chiudere davanti ai miei occhi la GUI e sbloccare il prompt si è lavorato con AWT, anche se era Windows 10...
Questo è il semplice codice, puramente destinato a rappresentare graficamente i vari layout manager (al cambiare ovviamente del setLayout()):
Ctrl+C non funziona, Alt+F4 idem... Per chiudere devo per forza chiudere il prompt.codice:import java.awt.*; public class PrimaApplicazioneAWT { public static void main(String args[]) { // creo nuovo frame Frame f = new Frame(); // scelgo un titolo f.setTitle("Prima Applicazione AWT"); // scelgo un layout per gestire i contenuti f.setLayout(new FlowLayout()); // fisso la posizione sullo schermo f.setLocation(100,100); // aggiungo due bottoni f.add(new Button("Questo e' il bottone 1")); f.add(new Button("Questo e' il bottone 2")); // aggiungo un campo di testo editabile f.add(new TextField("Questo e' un campo di testo")); // adatto il frame ai suoi contenuti f.pack(); // rendo visibile il frame f.setVisible(true); } }
Sarà ma ho visto chiudere una GUI AWT digitando un paio di tasti sulla tastiera... Ed era molto simile al codice che ho pubblicato quassù.
Quindi per far chiudere la GUI devo scegliere io un qualche input (combinazione di tasti) che in codice avvii l'exit() di System?