realizacja „system (pause)” w javie

realizacja „system (pause)” w javie
KO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Hej,
Szukałem długo na forum - nie znalazłem.

Jak w javie zrealizować oczekiwanie na dowolny klawisz ze strony użytkownika?
Umiem zrobić oczekiwanie ileś czasu ale nie do akcji użytkownika.
Proszę o wskazówki.

iooi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 573
0

Nie da się prostym sposobem uzyskać w Javie niebuforowanego stdio. Możesz jedynie oczekiwać na enter (zwykły System.in.read());

iooi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 573
0

Można się babrać w JNI:

Kopiuj
public class JSystem {
    static {
        System.loadLibrary("JSystem");
    }

    public static native void system(String command);

    private JSystem() {}
}
Kopiuj
#include <stdlib.h>
#include "JSystem.h"

JNIEXPORT void JNICALL Java_JSystem_system
  (JNIEnv *env, jclass clazz, jstring jcommand)
{
    const char* command = (*env)->GetStringUTFChars(env, jcommand, NULL);
    system(command);
    (*env)->ReleaseStringUTFChars(env, jcommand, command);
}

Ze statycznym importem mamy dokładnie wersję z C:

Kopiuj
system("pause");

Ale nie polecam. Najlepiej po prostu oczekiwać entera (a nie dowolnego klawisza).

VI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 212
0
Kopiuj
try { System.in.read(); } catch (IOException ex) { }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.