Интеграция Swing в простую текстовую приключенческую игру

Я довольно плохо знаком с некоторыми промежуточными понятиями в Java. Недавно я создал текстовую приключенческую игру под названием DazzleQuest, которая полностью работает в консоли разработчика / терминале. В нем участвуют мои друзья в качестве персонажей, поэтому я хотел показать им это и получить опыт работы с Java, передав функциональность командной строки и вывод с консоли на простой интерфейс Swing, состоящий изJTextArea чтобы показать результат игры иJTextField, сActionListener, чтобы обрабатывать команды от пользователя.

Мой основнойDazzleQuest класс содержит методы, называемыеrun() а такжеhandleCommand()Я считаю, что мне нужно интегрировать с моимFrame класс и его подклассTextFieldHandler [который расширяетсяActionListener].Мне вообще интересно, как лучше интегрировать эти методы и классы. Мои нынешние попытки сбивают с толку, и, хотя у меня есть базовые знания о том, как заставить различные классы и методы общаться, это является предварительным.

Извиняюсь за многословность и отсутствие конкретики. Я хотел бы поделиться своим кодом, но не уверен, сколько и что именно дать. Если вы думаете, что можете ответить на мой вопрос, но вам нужен пример того, что у меня есть, скажите, пожалуйста. Даже псевдокод в качестве ответа был бы оценен. Спасибо! Понимание этого может быть очень полезным для моего образования в качестве программиста.

РЕДАКТИРОВАТЬ: Вот упрощенные примеры моего кода из версии игры, которая полностью работает в консоли разработчика. Это мой основной классDazzleQuest:

public class DazzleQuest {

public void run() {
    listCommands();
    for (;;) {
        StdOut.println(new StringBuilder("You are in ").append(currentRoom.getName()).append(".").toString());
        StdOut.println(new StringBuilder("You can go to: ").append(currentRoom.listExits()).toString());
        StdOut.print("> ");
        handleCommand(StdIn.readLine());
        StdOut.println();
    }

public void handleCommand(String line) {
        String[] words = line.split(" ");
        if (words[0].equals("look"))
            look();
        }
    }

}

А вот мой токJFrame настройки, вFrame учебный класс:

import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JTextArea;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Frame extends JFrame {

    public static JTextField field;
    public JTextArea area;

    public Frame() {
        setLayout(new FlowLayout());

        area = new JTextArea(20, 40);
        area.setEditable(false);

        field = new JTextField(20);
        add(area);
        add(field);
        pack();
        setVisible(true);

         TextFieldHandler handler = new TextFieldHandler();

            field.addActionListener(handler);
        }

        public class TextFieldHandler implements ActionListener{

            public void actionPerformed(ActionEvent event)
            {
                String line = field.getText();
                area.append(line + "\n");
                field.setText("");
            }
        }


    public static void main(String args[]) {

        Frame test = new Frame();
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Я знаю, как распечатать вывод наJTextArea вместо консоли. Моя проблема в том, как именно получитьhandleCommand() работать сactionPerformed() вFrame класс, или я должен установить слушателя действия в основном классе или что-то в этом роде. Любые примеры реализации будут с благодарностью.

Еще раз спасибо за все, что вы можете сказать мне!

Ответы на вопрос(1)

Ваш ответ на вопрос