有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Lanterna如何创建简单的复选框菜单?

到目前为止我有

Terminal terminal = new DefaultTerminalFactory().createTerminal();
TerminalScreen screen = new TerminalScreen(terminal);
MultiWindowTextGUI mwtg = new MultiWindowTextGUI​(screen);

CheckBoxList checkBoxList = new CheckBoxList<String>();
checkBoxList.addItem("Check one");
checkBoxList.addItem("Check two");

我不明白的是如何将checkBoxList直接添加到mwtg

非常感谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    好吧,在盲目地在API中胡乱猜了几个小时之后,我做了这个,虽然有效,但可能有点笨重或气味,所以请随意改进我自己的答案

    private MultiWindowTextGUI mwtg;
    private BasicWindow bw;
    private CheckBoxList<String> checkBoxList;
    private List<String> ckeckedItems;
    Terminal terminal = new DefaultTerminalFactory().createTerminal();
    TerminalScreen screen = new TerminalScreen(terminal);
    MultiWindowTextGUI mwtg = new MultiWindowTextGUI​(screen);
    this.checkBoxList = new CheckBoxList<String>();
    this.checkBoxList.addItem("item1");
    this.checkBoxList.addItem("item2");
    this.checkBoxList.addItem("item3");
    this.checkBoxList.addListener((sel, prev) ->
        { this.ckeckedItems = this.checkBoxList.getCheckedItems​(); }
    );
    Panel panel = new Panel();
    panel.setLayoutManager(new GridLayout(4));
    panel.addComponent(this.checkBoxList);
    Button button = new Button("Done", () -> this.bw.close());
    button.addTo​(panel);
    this.bw = new BasicWindow("Choices");
    this.bw.setComponent(panel);
    this.mwtg.addWindowAndWait(this.bw);
    

    我希望这可能对某人有用