How does KeyListener work?

I have two(relevant) classes which ive made trying to figure out how this works.
package com.blockgoblin31.game;

import javax.swing.*;
import java.awt.*;

public class Main {
    public static int xSize;
    public static int ySize;
    public static void main(String[] args) {
        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        JTextArea area = new JTextArea();
        JScrollPane pane = new JScrollPane(area);
        pane.setPreferredSize(new Dimension(375, 125));
        area.setEditable(false);
        frame.getContentPane().add(pane);
        Game game = new Game(area, frame);
        frame.addKeyListener(game);
        frame.pack();
        frame.setVisible(true);
        System.out.println("running");
    }
}

package com.blockgoblin31.game;

import com.blockgoblin31.game.input.KeyContainer;

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;

public class Game implements KeyListener {

    private JTextArea area;

    private JFrame frame;

    public Game(JTextArea area, JFrame frame) {
        this.area = area;
        this.frame = frame;
    }

    public boolean close = false;

    @Override
    public void keyTyped(KeyEvent e) {
        turn(new KeyContainer(e));
        System.out.println("Text");
    }

    @Override
    public void keyPressed(KeyEvent e) {

    }

    @Override
    public void keyReleased(KeyEvent e) {

    }

    public void turn(KeyContainer key) {
        if (key.isKey("A")) {
            area.append("A Pressed");
            area.setCaretPosition(area.getDocument().getLength());
        }
        else if (key.isKeyCombination("C", new KeyContainer.ModifierType[]{KeyContainer.ModifierType.CONTROL})) frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
    }
}
Was this page helpful?