Integrando Swing en un simple juego de aventura de texto

Soy bastante nuevo en algunos conceptos intermedios en Java. Recientemente hice un juego de aventura de texto llamado DazzleQuest que se ejecuta completamente en la consola / terminal del desarrollador. Involucra a mis amigos como personajes, así que quería mostrárselos y ganar experiencia con Java transfiriendo la funcionalidad de la línea de comandos y la salida de la consola a una interfaz Swing simple compuesta por unJTextArea para mostrar la salida del juego y unJTextField, conActionListener, para manejar comandos del usuario.

Mi principalDazzleQuest La clase contiene métodos llamadosrun() yhandleCommand(), que creo que necesito integrar con miFrame clase y su subclaseTextFieldHandler [que se extiendeActionListener]Me pregunto, en general, cuál es la mejor manera de integrar estos métodos y clases. Mis intentos actuales han sido confusos y, aunque tengo un conocimiento básico sobre cómo hacer que las diferentes clases y métodos se comuniquen, es tentativo.

Disculpas por la palabrería y la falta de especificidad. Compartiría mi código, pero no estoy seguro de cuánto y exactamente qué dar. Si cree que puede responder a mi pregunta pero necesita un ejemplo de lo que tengo, dígalo. Incluso el pseudocódigo como respuesta sería apreciado. ¡Gracias! Comprender esto podría ser muy útil para mi educación como programador.

EDITAR: Aquí hay ejemplos simplificados de mi código de la versión del juego que se ejecuta completamente en la consola del desarrollador. Esta es mi clase principalDazzleQuest:

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();
        }
    }

}

Y aquí está mi corrienteJFrame configuración, en elFrame clase:

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);
    }
}

Sé cómo imprimir la salida a laJTextArea en lugar de a la consola. Mi problema es cómo obtener exactamentehandleCommand() trabajar conactionPerformed() en elFrame clase, o si debería configurar un oyente de acción en la clase principal o algo así. Cualquier ejemplo de implementación sería muy apreciado.

Gracias de nuevo por cualquier cosa que me puedas decir!

Respuestas a la pregunta(1)

Su respuesta a la pregunta