Java 如何将GUI添加到已完成的程序中?

Java 如何将GUI添加到已完成的程序中?,java,swing,user-interface,Java,Swing,User Interface,我用Java构建了一个纯文本或CLI的程序。现在我想在上面构建一个GUI。 回到学校时,我只学会了如何围绕GUI构建程序,而不是围绕程序构建GUI 我该怎么做呢 多谢各位 编辑:显然我完全被误解了。除了输入参数外,我还可以使用CLI模型中的字符串显示进度信息等内容。我已经知道了构建GUI和图形输入界面的基础知识。在编写GUI之前,重构CLI,直到它无法执行任何实际工作。也就是说,在输入收集和数据操作之间存在明显的分离障碍 例如,假设有一个CLI管理一些资源清册。这将是糟糕的: if(comman

我用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获取数据

在编写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编程很认真,那么我强烈建议你购买一个关于这个主题的软件。

要用Java编写GUI,你很可能需要使用内置的
Swing
框架

快速搜索“Java Swing教程”将显示许多有用的结果,但这里有一些很好的资源可以帮助您入门:


如果你真的想学习Java GUI编程,那么我强烈建议你购买一本关于这个主题的书。

你可以从一些研究开始,试着通读一遍,当你在那里完成时,在纸上画一些你想要实现的东西的草图,然后结合你所学的:)哦,如果已将模型与视图和演示者分离,则只需通过GUI视图交换CLI视图;)“学会了如何围绕图形用户界面而不是围绕程序构建图形用户界面”——希望更多的学校能帮助你划分这两个通常非常独立的问题。你可以从一些研究开始,试着通读一遍,当你在那里完成时,在纸上画一些你想要实现的东西的草图,然后结合你所学的:)哦,如果已将模型与视图和演示者分离,则只需通过GUI视图交换CLI视图;)“学会了如何围绕GUI构建程序,而不是围绕程序构建GUI”——希望更多的学校能帮助你划分这两个通常非常独立的问题。经过多年的重访,我终于明白了这个答案。经过多年的重访,我终于明白了这个答案。