我用 Java 构建了一个纯文本或 CLI 程序。现在我想在它之上构建一个 GUI。回到学校时,我只学会了如何围绕 GUI 构建程序,而不是围绕程序构建 GUI。
我该怎么做呢?
谢谢你。
编辑:显然我完全被误解了。除了输入参数之外,我还有进度信息和在 CLI 模型中使用字符串显示的内容。我已经知道构建 GUI 和图形输入界面的基础知识。
我用 Java 构建了一个纯文本或 CLI 程序。现在我想在它之上构建一个 GUI。回到学校时,我只学会了如何围绕 GUI 构建程序,而不是围绕程序构建 GUI。
我该怎么做呢?
谢谢你。
编辑:显然我完全被误解了。除了输入参数之外,我还有进度信息和在 CLI 模型中使用字符串显示的内容。我已经知道构建 GUI 和图形输入界面的基础知识。
在你编写你的 GUI 之前,重构你的 CLI,直到它没有做任何实际的工作。也就是说,您在输入收集和数据操作之间有明显的分离障碍。
例如,想象一个管理一些库存的 CLI。这会很糟糕:
if(command.equals("additem")) {
int itemNumber = Integer.parseInt(tokens[1]);
int quantity = Integer.parseInt(tokens[2]);
if(items.contains(itemNumber) { // exists, add to current
int currentQuantity = items.get(itemNumber);
int newQuantity = quantity + currentQuantity;
items.put(itemNumber,newQuantity);
} else { // doesn't exist, make new entry
items.put(itemNumber,quantity);
}
continue;
}
这很好,因为它做了它应该做的事情。不好的是 CLI 正在做这项工作,而不是其他一些接口。更好的方法是
if(command.equals("additem")) {
int itemNumber = Integer.parseInt(tokens[1]);
int quantity = Integer.parseInt(tokens[2]);
inventoryManager.addItem(itemNumber,quantity);
continue;
}
现在您的 CLI 所做的就是收集输入,并将该输入传递给某个管理器。
一旦 CLI 中的每个命令都采用“收集输入并将其传递给某个管理器类”的格式,您就可以制作 GUI。制作 GUI 时,调用与 CLI 中完全相同的方法,您只需从 GUI 字段而不是从 CLI 获取数据!
要使用 Java 编写 GUI,您很可能希望使用内置Swing
框架。
快速搜索“Java Swing 教程”会发现许多有用的结果,但这里有一些很好的资源可以帮助您入门:
如果您对 Java GUI 编程很认真,那么我强烈建议您购买一本有关该主题的书。