这个简单的代码在处理过程中从未对我有用:
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while (str != null) {
System.out.print("> prompt ");
str = in.readLine();
println(str);
}
}
catch (IOException e) {
}
可能是因为控制台输出框不能用于输入,这与Eclipse不同。有一个简单的解决方法,还是我被迫做标准的对话框(或keyPressed处理)?
答案 0 :(得分:1)
如果您使用的是Processing IDE,则Processing本身不支持此行为。如果您导出草图并编辑java文件,或使用Eclipse, Proclipsing, core.jar等,您可以像任何其他Java应用程序一样访问System.in,但这会破坏处理的目的,因为它通常不会从命令行运行并且本质上是图形。
最佳做法是使用按下键的方法捕获键盘。例如:
String str = "";
void keyPressed() {
str += key;
}
然后在你的draw()循环/方法中,你可以处理str上的文本输入并在需要时清除它。
如果你想要更复杂的东西以获得更好的用户体验,我建议使用像ControlP5's TextField或TextArea这样的东西。
答案 1 :(得分:0)
您的程序运行正常(我将其命名为test)并将其导出为Applet。我使用cygwin以及windows命令提示符进行了测试:
$ cd test/applet
$ java -jar test.jar
输出(我输入“hello”并按Enter键):
prompt> hello
hello
prompt>
我通过ssh在Ubuntu终端上尝试了很快。我有问题将它连接到x11服务器。如果这是一个问题,请考虑:http://en.wikipedia.org/wiki/Xvfb。
为了确认,我能够运行Library-> Network中包含的SharedCanvasServer示例,其中我添加了一个System.out.println来将调试转储到执行终端。
java -cp "core.jar;net.jar;SharedCanvasServer.jar" SharedCanvasServer