我想知道是否可以使用picocli应用程序实现可滚动的结果。示例:
GetTracks输出结果列表。
>TrackA
TrackB
TrackC用户可以向上或向下滚动并选择他想要的轨道?我想知道picocli是否可以实现这个功能?
发布于 2021-05-06 01:10:50
不幸的是,没有,picocli只处理如何解析命令参数并将其表示给程序员。任何进一步的菜单将需要处理您,程序员。您可以使用一个简单的数字输入工作流来制作类似于此的内容。当使用输入所需菜单项的编号时:
>>> GetTracks
1 ) Track 1
2 ) Track 2
3 ) Track 3
select a track:您可以通过利用像lanterna这样的库来生成您想要的工作流。一个非常简单的实现可能如下所示:
public class OutputChar {
public static void main(String[] args) throws IOException {
Terminal terminal = new DefaultTerminalFactory().createTerminal();
Screen screen = new TerminalScreen(terminal);
TextGraphics graphics = screen.newTextGraphics();
screen.startScreen();
screen.clear();
graphics.putString(0, 0, "Track 1");
graphics.putString(0, 1, "Track 2");
graphics.putString(0, 2, "Track 3");
screen.refresh();
int selectedTrack = 0;
KeyStroke stroke = screen.readInput();
if (stroke instanceof MouseAction) {
MouseAction action = (MouseAction) stroke;
MouseActionType actionType = action.getActionType();
switch (actionType) {
case MouseActionType.SCROLL_UP: selectedTrack++;
break;
case MouseActionType.SCROLL_DOWN: selectedTrack--;
break;
}
}
screen.stopScreen();
}
}以上示例将从键盘或鼠标读取单个输入,并根据滚动的方向更改选定的轨道。您可能想要做一些更多的逻辑和工作流控制(以纠正一些相当明显的错误),但是如果您决定沿着这条道路走下去,这应该会让您开始工作。
https://stackoverflow.com/questions/67410321
复制相似问题