๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/JAVA

[์ƒํ™œ์ฝ”๋”ฉ] JAVA1 - 11. ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ (+ AdjustCapsLockLEDForKeyTransitionHandling ์—๋Ÿฌ์žก๊ธฐ)

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 9. 15.

 

 

์ƒํ™œ์ฝ”๋”ฉ JAVA1

-  1. ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ -

-  2. ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ - arguments & parameter -

 


 

1. ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ

ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ๋“ค์–ด์˜ค๋Š” ์ •๋ณด์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•ด์„œ ์ถœ๋ ฅ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ธฐ๊ณ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ, ์ž…๋ ฅํ•˜๋Š” Input์˜ ํ˜•ํƒœ๋Š” Argument, File, Network ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋“ค์–ด์™€ Monitor, File, Audio ๋“ฑ์œผ๋กœ ์ถœ๋ ฅ Output ๋˜์–ด์„œ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

์˜ค๋Š˜์˜ ๋ชฉํ‘œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์–ด๋– ํ•œ ์ž…๋ ฅ๊ฐ’์„ ์ฃผ๋Š๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ถœ๋ ฅ๊ฐ’์ด ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๋Š”์ง€ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

 

import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;

public class OkJavaGoInHome {

	public static void main(String[] args) {
		
		String id = "JAVA APT 507";
		
		// Elevator call
		Elevator myElevator = new Elevator(id);
		myElevator.callForUp(1);
		
		// Security off
		Security mySecurity = new Security(id);
		mySecurity.off();
		
		// Light on
		Lighting hallLamp = new Lighting(id + " / Hall Lamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting(id + " / Hall Lamp");
		floorLamp.on();

	}

}

์—ฌ๊ธฐ ์ง‘์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ œํ’ˆ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค.

ํ‰์†Œ์—๋Š” ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งŒ์•ฝ ์ด์‚ฌ๋ฅผ ๊ฐ€๊ฒŒ๋œ๋‹ค๋ฉด ์ด ํ”„๋กœ๊ทธ๋žจ์€ JAVA APT 507๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์–ด์„œ ์ด์‚ฌํ•œ ๊ณณ์—์„œ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ์ง์ ‘๋ณ€๊ฒฝํ•œ ํ›„ ์ปดํŒŒ์ผ ํ•˜์—ฌ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.

๋˜ํ•œ ์ด ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋งค๋ฒˆ๋ฐ”๊พธ๊ณ  ์ปดํŒŒ์ผํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ์ •๋ณด๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด์„œ ID์ •๋ณด๋ฅผ ์…‹ํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

์ธํ„ฐ๋„ท์— ์ฐพ์•„๋ณด๋‹ˆ ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ๋™์ž‘๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๊ณ , ์šฐ๋ฆฌ๋Š” ๊ธฐ์กด์— ์ง‘์˜ ์ •๋ณด๋ฅผ ๋‹ด์•˜๋˜ ๋ณ€์ˆ˜ id์— ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋ฅผ ์‘์šฉ์‹œ์ผœ์„œ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

 

๋งŒ์•ฝ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค๋ฉด import javax.swing.JOptionPane; ์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

import javax.swing.JOptionPane;

import org.opentutorials.iot.DimmingLights;
import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;

public class OkJavaGoInHomeInput {

	public static void main(String[] args) {
		
		String id = JOptionPane.showInputDialog("Enter a ID");
        
        // ๋ถˆ๋น›์˜ ๋‹จ๊ณ„๋ฅผ ์ˆซ์ž๋กœ ์ž…๋ ฅํ•˜๋Š” ์ƒˆ๋กœ์šด ์ฐฝ ๋ฐœ์ƒ!
		String bright = JOptionPane.showInputDialog("Enter a Bright Level");

		
		// Elevator call
		Elevator myElevator = new Elevator(id);
		myElevator.callForUp(1);
		
		// Security off
		Security mySecurity = new Security(id);
		mySecurity.off();
		
		// Light on
		Lighting hallLamp = new Lighting(id + " / Hall Lamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting(id + " / Hall Lamp");
		floorLamp.on();
		
		DimmingLights moodLamp = new DimmingLights(id + " moodLamp");
        // setBright๋ผ๋Š” ๋ฉ”์†Œ๋“œ์•ˆ์—๋Š” doubleํ˜•์ด ๋“ค์–ด๊ฐ€๋ฏ€๋กœ parseDouble๋กœ string -> double ํ˜•๋ณ€ํ™˜
		moodLamp.setBright(Double.parseDouble(bright));
		moodLamp.on();

	}

}

๋˜ํ•œ ์ถ”๊ฐ€์ ์œผ๋กœ ์ „๋“ฑ์˜ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์ฃผ๊ธฐ์œ„ํ•œ ์ฐฝ์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋Š”๋ฐ ์ด๋•Œ์˜ ๊ฐ’์€ ์ˆซ์ž๋กœ ๋“ค์–ด๊ฐ€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜•์„ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ณผ์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

 

์‹คํ–‰ํ•ด์ฃผ๋ฉด 2๊ฐœ์˜ input์ฐฝ์„ ๊ฑฐ์ณ์„œ ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’๊ณผ ํ•จ๊ป˜ ๋ช…๋ น์ด ์ฒ˜๋ฆฌ๋˜์–ด ์žˆ๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์–ธ์ œ๋‚˜ ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ, ์ฝ”๋“œ๋ฅผ ๋ชจ๋ฅด๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋„ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋œ ๊ฒƒ์ด๋‹ค.

 


2. ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ : arguments & parameter

์‚ฌ์šฉ์ž๊ฐ€ ๋งค๋ฒˆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ •๋ง ์ข‹์€ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ๊ฐœ๋ฐœํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ž…์žฅ์—์„œ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๊ณผ์ •์ด ๋‹ค์†Œ ๋ถˆํŽธํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” ํ”„๋กœ๊ทธ๋žจ์•ˆ์— ๊ฐ’์„ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด์ฃผ์–ด์„œ ๋งค๋ฒˆ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

Run๋ฒ„ํŠผ ์šฐ์ธก์— ์ž‘๊ฒŒ โ–พ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„ Run Configurations... ๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ด๊ณณ์— ์ž‘์„ฑํ•œ Java Application๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ํ…Œ์ŠคํŠธ ํ•ด ๋ณผ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ฆญํ•ด ์ค€๋‹ค.

(๋งŒ์•ฝ, ํ•ด๋‹น ์ž๋ฐ”ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด Run๋ฒ„ํŠผ์„ ํ•œ ๋ฒˆ ๋ˆŒ๋Ÿฌ์ค€ ๋‹ค์Œ์— ๋‹ค์‹œ ์ ‘์†ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.)

 

Argumentsํƒญ์— ์ ‘์†ํ•ด ์ž…๋ ฅ๊ฐ’์„ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

์ด๋•Œ, ๊ทธ๋Œ€๋กœ ๋„์–ด์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด ํ•œ ๊ฐœ์˜ ์ž…๋ ฅ๊ฐ’์ด ์•„๋‹Œ ๋”ฐ๋กœ๋”ฐ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์€๋”ฐ์˜ดํ‘œ์•ˆ์— ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

๋˜ํ•œ ํ•œ ๊ฐœ์˜ ๊ฐ’์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ์›ํ•˜๋ฉด ์ŠคํŽ˜์ด์Šค๋ฐ”๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ๋‚˜๋ˆ ์„œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

์ƒ๋‹จ์— ์žˆ๋Š” Name์€ ๋‚ด๊ฐ€ ์–ด๋– ํ•œ ์ž…๋ ฅ๊ฐ’์„ ์ ์—ˆ๋Š”์ง€ ๋”ฐ๋กœ ์ ์„ ์ˆ˜ ์žˆ์–ด ํŒŒ์ผ ์ด๋ฆ„ ์˜†์— ์ž‘์„ฑํ•ด๋„ ๋œ๋‹ค.

 

 Apply๋ฅผ ๋ˆŒ๋Ÿฌ์ค€ ํ›„ Run ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์•„๊นŒ์™€ ๋ณ€ํ•จ์—†๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ ์ด์ œ ์šฐ๋ฆฌ๋Š” Arguments๋ฅผ ๋ฐ›์•„๋‚ด๋Š” ์ฝ”๋“œ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

import javax.swing.JOptionPane;

import org.opentutorials.iot.DimmingLights;
import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;

public class OkJavaGoInHomeInput {

	public static void main(String[] args) {
		
		String id = args[0]; // Java APT 507
		String bright = args[1]; // 10.0

		
		// Elevator call
		Elevator myElevator = new Elevator(id);
		myElevator.callForUp(1);
		
		// Security off
		Security mySecurity = new Security(id);
		mySecurity.off();
		
		// Light on
		Lighting hallLamp = new Lighting(id + " / Hall Lamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting(id + " / Hall Lamp");
		floorLamp.on();
		
		DimmingLights moodLamp = new DimmingLights(id + " moodLamp");
		moodLamp.setBright(Double.parseDouble(bright));
		moodLamp.on();

	}

}

์•„๊นŒ์ „ ์šฐ๋ฆฌ๊ฐ€ Arguments๋ž€์— ์ ์€ ์ž…๋ ฅ๊ฐ’์€ args๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’์„ ๋ฐ›์•„์˜ค๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๊ฐ’๋“ค์€ Stringํ˜•์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ ์•ˆ์— ์žˆ๋Š” ๊ฐ’์€ 'Java APT 507'์ด ๋˜๋Š” ๊ฒƒ์ด๊ณ , 1๋ฒˆ์งธ์˜ ๊ฐ’์ด '10.0'์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด ๊ฐ์ž์˜ ๊ฐ’๋“ค์„ ๋ณ€์ˆ˜  id์™€ bright์— ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๊ณ  ์‹คํ–‰ํ•˜๋ฉด ์•„๊นŒ์˜ ํŒ์—…์ฐฝ์ด ๋œจ์ง€๋Š” ์•Š์ง€๋งŒ ์ œ๋Œ€๋กœ ๋œ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ ๋””๋ฒ„๊น…์„ ํ†ตํ•ด์„œ ๊ฐ ๋ณ€์ˆ˜์•ˆ์— ๊ฐ’๋“ค์ด ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์ด๋ฅผ ํ†ตํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ๋Š”๊ฑด ์ฝ”๋“œ์•ˆ์— ์žˆ๋˜ args๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ parameter๋ผ๊ณ  ํ•˜๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๊ฐ’์„ ์ž…๋ ฅํ–ˆ๋˜ ๊ฐ’๋“ค์„ arguments๋ผ๊ณ  ํ•œ๋‹ค.

 

 


2022-09-14 22:08:26.352 java[6576:583603] TSM AdjustCapsLockLEDForKeyTransitionHandling - _ISSetPhysicalKeyboardCapsLockLED Inhibit

 

๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.

์•„๋‹ˆ ์ด๊ฒŒ ๋ญ์‹œ์—ฌ... ์ด๊ฑฐ ํ•ด๊ฒฐํ•œ๋‹ค๊ณ  ์†Œ์ค‘ํ•œ 30๋ถ„์„ ๋‚ ๋ ธ๋‹ค...

๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ๋ณดํ†ต ๋งฅ๋ถ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒํ•œํ…Œ ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ์ธ๊ฒƒ ๊ฐ™์€๋ฐ ๋‚˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋กœ ๊ณ ์ƒํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ 30๋ถ„๋‚ ๋ฆฌ์ง€ ๋ง๊ณ  ์—ด์ฝ”ํ•˜์‹œ๊ธธ ๋ฐ”๋ž€๋‹ค!

 

1. command + space ํ‚ค๋ฅผ ๋ˆ„๋ฅธ๋‹ค์Œ ํ‚ค๋ณด๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•ด ์ ‘์†ํ•œ๋‹ค.

( + ์ƒ๋‹จ๋ฐ”์— ์žˆ๋Š” ์• ํ”Œ๋งˆํฌ → ์‹œ์Šคํ…œํ™˜๊ฒฝ์„ค์ • → ํ‚ค๋ณด๋“œ ์ˆœ์œผ๋กœ ํด๋ฆญํ•ด๋„ ๊ฐ€๋Šฅ)

 

2.  ์ž…๋ ฅ์†Œ์Šค ํด๋ฆญํ›„ ํ•˜๋‹จ์— ์žˆ๋Š” "ํ•œ/A ํ‚ค๋กœ ABC ์ž…๋ ฅ ์†Œ์Šค ์ „ํ™˜"์ด ์ฒดํฌ๊ฐ€ ๋˜์–ด์žˆ๋‹ค๋ฉด ํ•ด์ œํ•ด์ค€๋‹ค.

 

3. ์ฒดํฌ๊ฐ€ ํ•ด์ œ๋œ ํ›„ ํ•œ/A๋Š” control + space๋กœ ์ •ํ•ด์ ธ ์žˆ์ง€๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹จ์ถ•ํ‚ค์— ์ ‘์†ํ•œ ์ˆ˜ ์ž…๋ ฅ์†Œ์Šค๋ฅผ ๋ˆ„๋ฅธ๋‹ค์Œ์— "์ด์ „ ์ž…๋ ฅ ์†Œ์Šค ์„ ํƒ"์—์„œ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ž„์˜๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์ฐธ๊ณ )

 

How do I solve AdjustCapsLockLEDForKeyTransitionHandling?

I am trying to use KeyListener to input information, such as using the arrow keys to move an object in a plane, but as soon as I press my first key, the error below is thrown: 2021-05-20 09:55:35.400

stackoverflow.com

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€