首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能用picocli做滚动结果吗?

我能用picocli做滚动结果吗?
EN

Stack Overflow用户
提问于 2021-05-06 00:16:49
回答 1查看 50关注 0票数 1

我想知道是否可以使用picocli应用程序实现可滚动的结果。示例:

代码语言:javascript
复制
GetTracks

输出结果列表。

代码语言:javascript
复制
>TrackA 
 TrackB
 TrackC

用户可以向上或向下滚动并选择他想要的轨道?我想知道picocli是否可以实现这个功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-06 01:10:50

不幸的是,没有,picocli只处理如何解析命令参数并将其表示给程序员。任何进一步的菜单将需要处理您,程序员。您可以使用一个简单的数字输入工作流来制作类似于此的内容。当使用输入所需菜单项的编号时:

代码语言:javascript
复制
>>> GetTracks

1 ) Track 1
2 ) Track 2
3 ) Track 3

select a track:

您可以通过利用像lanterna这样的库来生成您想要的工作流。一个非常简单的实现可能如下所示:

代码语言:javascript
复制
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();
    }

}

以上示例将从键盘或鼠标读取单个输入,并根据滚动的方向更改选定的轨道。您可能想要做一些更多的逻辑和工作流控制(以纠正一些相当明显的错误),但是如果您决定沿着这条道路走下去,这应该会让您开始工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67410321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档