【发布时间】:2011-09-30 07:01:44
【问题描述】:
如何实现按任意键以在 Java 中继续。在 C 中我使用 getch() 并且它工作正常,但在 Java 中我必须在每个 OutputStream 类中实现的每个读取方法中按 Enter。
提前致谢。
【问题讨论】:
-
这是控制台还是桌面应用程序?
-
我看到了这个问题,但我想知道如何在没有 JNI 的情况下做到这一点?这是一个控制台应用程序。
如何实现按任意键以在 Java 中继续。在 C 中我使用 getch() 并且它工作正常,但在 Java 中我必须在每个 OutputStream 类中实现的每个读取方法中按 Enter。
提前致谢。
【问题讨论】:
我发现的唯一方法是使用 JNI 和 C。
【讨论】:
我找到了一个代码,等效于C的“_getch()”函数
我已经回答了这个问题Equivalent function to C's "_getch()" in Java?在这里查看我的答案
或使用代码
public static void getCh() {
final JFrame frame = new JFrame();
synchronized (frame) {
frame.setUndecorated(true);
frame.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
frame.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
synchronized (frame) {
frame.setVisible(false);
frame.dispose();
frame.notify();
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
});
frame.setVisible(true);
try {
frame.wait();
} catch (InterruptedException e1) {
}
}
}
【讨论】:
如果您使用的是 windows,则可以使用以下代码。
new ProcessBuilder("cmd", "/c", "pause").inheritIO().start().waitFor();
并导入以下包。
import java.io.IOException;
并将主要功能更改为此。
public static void main(String args[]) throws IOException, InterruptedException
【讨论】: