PDA

Visualizza la versione completa : Come fare un getch() in Java?


LukeSky
25-01-2005, 11:58
Volevo sapere se in Java esiste una funzione tipo getch() in C.
Cioè come è possibile fermare la stampa dei risultati di un programma e riprenderla premendo un tasto della tastiera quando i risultati sono stampati nella finestra DOS?

sky_451
25-01-2005, 12:11
[ot] Gran bel nome. :zizi:

LeleFT
25-01-2005, 15:33
E' un problema che mi sono posto anch'io e non ho trovato nessuna soluzione: ciò che mi viene in mente è che, molto probabilmente, questa cosa è troppo dipendente dal sistema operativo in uso e, quindi, non c'è un metodo generale per poterlo fare.

Se non si sta lavorando con componenti grafiche la cosa non sembra possibile, se non utilizzando dei metodi nativi.

Se non erro, infatti, qualcuno aveva detto che la getch() non era stata inclusa nell'ANSI C, proprio perchè era potenzialmente dannosa... :bhò:


Ciao. :ciauz:

Lucis
25-01-2005, 17:24
forse non ho capito bene cosa ti serve, cmq il codice per la lettura da tastiera è il seguente:


import java.io.*;

public class LetturaDaTastiera {
public static void main(String[] args) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Scrivi una stringa: ");
String s = in.readLine();
System.out.println("Hai scritto '"+s+"'");
System.out.println("Scrivi un carattere: ");
char c = (char)in.read();
System.out.println("Hai scritto '"+c+"'");
} catch (IOException e) {
e.printStackTrace();
}
}
}

:ciauz:

LukeSky
25-01-2005, 18:44
il mio problema è questo:

ho un programma che mi stampa una serie di risultati che però non vengono visualizzati interamente dalla shell di dos.
come faccio ad avere una stampa dell'intero output del programma?
Il sistema operativo che uso è Win98 e non mette le barre di scorrimento sulla shell; in questo modo riesco solo a leggere l'ultima parte dell'output.
Ho anche provato a catturare l'output con texpad, ma siccome il programma prevede anche una fase di input nel momento in cui inserisco un dato la cattura dell'output genera un errore e ferma la procedura.

Come posso fare?
Esiste un tool per generare un file log dell'output?
O avete altri consigli?
grazie.

LeleFT
25-01-2005, 22:50
Se è solo questo il problema, credo che aprendo la shell, facendo clic col tasto destro sulla barra del titolo della finestra, scegliendo Proprietà... andando nella tab Layout e aumentando la dimensione verticale del buffer dello schermo (per esempio a 200) tu possa risolvere il problema. :)


Ciao. :ciauz:

LukeSky
26-01-2005, 09:38
ho provato ad aumentare la memoria, però ogni volta che eseguo una nuova applicazione le impostazioni della shell ritornano come erano e non riesco comunque a vedere l'output.

Sto cercando in qualche modo di reindirizzare l'output in file di testo ma non sò come fare.

C'è almeno un modo per cambiare le proprietà di visualizzazione dalla shell di dos in modo definitivo???

LeleFT
26-01-2005, 10:23
Il sistema operativo dovrebbe chiederti, quando modifichi le impostazioni del buffer, se vuoi mantenere le nuove impostazioni solo per l'istanza corrente o per tutte le future istanze della stessa applicazione. Un messaggio come quello nella figura allegata.

Basta dirgli di mantenerle per tutte le istanze. :)


Ciao. :ciauz:

netarrow
26-01-2005, 17:16
Esiste un tool per generare un file log dell'output?

ma non c'è anche in DOS la funzione per dirottare l'output in un file?
Tipo:

java MainClass > output.txt

:ciauz:

LeleFT
26-01-2005, 17:43
Originariamente inviato da netarrow
ma non c'è anche in DOS la funzione per dirottare l'output in un file?
Tipo:

java MainClass > output.txt

:ciauz:
Sì, anche questo può essere un metodo... :)


Ciao. :ciauz:

Loading