From e90daa8e5b123008514b631463a54e838d133d48 Mon Sep 17 00:00:00 2001 From: coolGi Date: Wed, 8 Nov 2023 01:26:32 +1030 Subject: [PATCH] Added key detection through the new test screen --- .../core/config/gui/AbstractScreen.java | 4 ++-- .../core/config/gui/ConfigScreen.java | 12 ++++++++++-- .../core/config/gui/EmbeddedFrameUtil.java | 2 +- .../config/gui/JavaScreenHandlerScreen.java | 19 +++++++++++++++++++ 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/AbstractScreen.java b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/AbstractScreen.java index b8dbf3cab..d031a18f8 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/AbstractScreen.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/AbstractScreen.java @@ -51,8 +51,8 @@ public abstract class AbstractScreen /** Called every time the window gets re-sized */ public void onResize() { } - ; - /** What happens when the user closes the screen */ + + /** What happens when the user closes the screen */ public void onClose() { } // ---------- Random stuff that might be needed later on ---------- // diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/ConfigScreen.java b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/ConfigScreen.java index 6c5c7a821..5fd55e8a0 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/ConfigScreen.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/ConfigScreen.java @@ -21,8 +21,10 @@ package com.seibel.distanthorizons.core.config.gui; import javax.swing.*; import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; -public class ConfigScreen extends JFrame +public class ConfigScreen extends JComponent { public ConfigScreen() @@ -33,6 +35,8 @@ public class ConfigScreen extends JFrame constraints.weightx = 0.5; constraints.gridx = 0; constraints.gridy = 0; + constraints.insets = new Insets(10, 10, 0, 10); + add(new JLabel("Hello World!"), constraints); } @@ -40,8 +44,12 @@ public class ConfigScreen extends JFrame public static void main(String[] args) { SwingUtilities.invokeLater(() -> { - JFrame frame = new ConfigScreen(); + JFrame frame = new JFrame(); + + frame.add(new ConfigScreen()); + frame.setSize(300, 200); + frame.setLocationRelativeTo(null); // Makes the window open at the center of the screen frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/EmbeddedFrameUtil.java b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/EmbeddedFrameUtil.java index 20dd0af9e..46e90981b 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/EmbeddedFrameUtil.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/EmbeddedFrameUtil.java @@ -39,7 +39,7 @@ import static org.lwjgl.system.macosx.ObjCRuntime.*; // which is licensed under https://www.lwjgl.org/license /** - * Some utils for embeding awt and swing items into lwjgl windows + * Some utils for embedding awt and swing items into lwjgl windows * * @author Ran * @author coolGi diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/JavaScreenHandlerScreen.java b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/JavaScreenHandlerScreen.java index 7ba1bcaf1..48c6b2077 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/gui/JavaScreenHandlerScreen.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/gui/JavaScreenHandlerScreen.java @@ -23,6 +23,8 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; /** * @@ -52,6 +54,23 @@ public class JavaScreenHandlerScreen extends AbstractScreen frame.add(jComponent); + JavaScreenHandlerScreen thiss = this; + + frame.addKeyListener(new KeyListener() { + @Override + public void keyPressed(KeyEvent keyEvent) + { + System.out.println("Key pressed code=" + keyEvent.getKeyCode() + ", char=" + keyEvent.getKeyChar()); + if (keyEvent.getKeyCode() == KeyEvent.VK_ESCAPE) + thiss.close = true; + } + + @Override + public void keyTyped(KeyEvent keyEvent) { } + @Override + public void keyReleased(KeyEvent keyEvent) { } + }); + if (firstRun) { EmbeddedFrameUtil.embeddedFrameSetBounds(frame, 0, 0, this.width, this.height);