progressbar
progressbar copied to clipboard
How can I create a child progressbar?
Hello, Is there a way to create child progress bar like https://github.com/Mpdreamz/shellprogressbar
Hi! This is planned for a future version (v1.0), but I'm afraid it won't be ready for at least a few months.
Hello, Is there a way to create child progress bar like https://github.com/Mpdreamz/shellprogressbar
maybe you can try this
/**
* 支持在控制台打印多行进度条
*
* @author LCTR
* @date 2023-05-07
*/
public class ConsoleMultiProgressBarConsumer
extends ConsoleProgressBarConsumer {
final int index;
final PrintStream out;
public ConsoleMultiProgressBarConsumer(PrintStream out,
int index) {
super(out);
this.out = out;
this.index = index;
}
public ConsoleMultiProgressBarConsumer(PrintStream out,
int maxRenderedLength,
int index) {
super(out,
maxRenderedLength);
this.out = out;
this.index = index;
}
@Override
public void accept(String str) {
out.print(StringExtension.newString("\r\n",
index));
out.print(matcher.appendTail(sb));
//super.accept(str);
out.print(StringExtension.newString("\033[F",
index));
}
}
new ProgressBarBuilder()
.setTaskName("#01"))
.setInitialMax(100)
.setConsumer(new ConsoleMultiProgressBarConsumer(new PrintStream(new FileOutputStream(FileDescriptor.out)),
1))
.hideEta()
.setUpdateIntervalMillis(100)
.build();
new ProgressBarBuilder()
.setTaskName("#02"))
.setInitialMax(100)
.setConsumer(new ConsoleMultiProgressBarConsumer(new PrintStream(new FileOutputStream(FileDescriptor.out)),
2))
.hideEta()
.setUpdateIntervalMillis(100)
.build();
new ProgressBarBuilder()
.setTaskName("#03"))
.setInitialMax(100)
.setConsumer(new ConsoleMultiProgressBarConsumer(new PrintStream(new FileOutputStream(FileDescriptor.out)),
3))
.hideEta()
.setUpdateIntervalMillis(100)
.build();