realizacja „system (pause)” w javie

Odpowiedz Nowy wątek
2011-12-26 11:52

Rejestracja: 8 lat temu

Ostatnio: 7 lat temu

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.

edytowany 1x, ostatnio: KOch, 2011-12-26 11:54

Pozostało 580 znaków

2011-12-26 12:32

Rejestracja: 9 lat temu

Ostatnio: 6 lat temu

0

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

Tego się spodziewałem. Dziękuję? A znasz nieprosty? Na upartego można też zrobić bufor, pobrać i wyczyścić. - KOch 2011-12-26 17:18

Pozostało 580 znaków

2011-12-26 18:19

Rejestracja: 9 lat temu

Ostatnio: 6 lat temu

0

Można się babrać w JNI:

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

    public static native void system(String command);

    private JSystem() {}
}
#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:

system("pause");

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

edytowany 4x, ostatnio: iooi, 2011-12-27 15:33

Pozostało 580 znaków

2011-12-26 18:37

Rejestracja: 8 lat temu

Ostatnio: 6 lat temu

0
try { System.in.read(); } catch (IOException ex) { }
już tak zrobiłem, dzięki działa - KOch 2011-12-27 00:18

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0