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

标签 java user-interface 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

非常感谢您的帮助

最佳答案

好吧,在盲目地通过 API 瞎猜几个小时之后,我这样做了,它有效,但可能很笨重或有味道,所以请随意改进我自己的答案。

private MultiWindowTextGUI mwtg;
private BasicWindow bw;
private CheckBoxList<String> checkBoxList;
private List<String> checkedItems;
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.checkedItems = 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);

我希望这对某人有用......

关于java - Lanterna-如何创建一个简单的复选框菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62975715/

相关文章:

java - Intellij构建破JAR Artifact

java - 如何通过匹配正则表达式提取所有子字符串?

java - 无法使用@Value注释从Spring Boot中的属性文件中读取值

Jquery ui-sortable - 无法在空的 tbody 中删除 tr

java - 使用来自不同类的 Volley 请求更新 UI

java - Apache 卡夫卡流: How to switch from using In-memory Key Value Store to Persistent Key Value Store?

java - 使用 toString 方法和 arraylist.clear 显示帐户信息

user-interface - 如何在 Kendo UI 中更改迷你图背景颜色

intellij-idea - IntelliJ Idea LanternaGriffon无法识别Griffon项目