我是新手“编程的东西,试着学习” 我的“app”运行bat测试文件,所有结果都印在textarea上,效果很好 但我现在的目标是提供进度条,以显示印刷到文本区域时的进度。 我该怎么办?我已阅读了一些指南,并尝试了一些东西,但它对我无效javafx,如何在打印到文本区域时显示进度条
这是运行蝙蝠文件的按钮背后的方法
public void RunTestScrip() throws IOException {
Process p = Runtime.getRuntime().exec(path);
final InputStream stream = p.getInputStream();
new Thread(new Runnable() {
public void run() {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(stream));
String line = null;
while ((line = reader.readLine()) != null) {
console.appendText("\n" + line);
progressBar.progressProperty().bind(RunTestScrip()); // dont know how to use it right in my code
}
} catch (Exception e) {
// TODO
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// ignore
}
}
}
}
}).start();
除非您知道总共要接收多少数据,否则您无法更新进度条(进度将设置为什么?)。你有权访问这些信息吗? –
如果你没有数据,你可以显示'ProgressIndicator'值为'-1',直到工作完成,这样用户不会觉得无聊并打破键盘:)。 – GOXR3PLUS
请自己帮忙,了解试用资源。我确定你不再使用Java 6了,所以你应该能够摆脱那些最后的块,并且在一个步骤中声明并初始化'reader'变量... – fabian