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