-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path68_KeyListener
More file actions
86 lines (69 loc) · 2.43 KB
/
68_KeyListener
File metadata and controls
86 lines (69 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// JColorChooser = A GUI mechanism that let's a user choose a color
<Main.java>
public class Main {
public static void main(String[] args) {
new MyFram();
}
}
<MyFram.java>
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
public class MyFram extends JFrame implements KeyListener {
JLabel label;
ImageIcon icon = new ImageIcon();
MyFram(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500,500);
this.setLayout(null);
this.addKeyListener(this);
icon = new ImageIcon("icy.png");
label = new JLabel();
label.setBounds(0,0,100,100);
label.setBackground(Color.red);
label.setOpaque(true);//to display background colour
label.setIcon(icon)
this.getContentPane(Color.black);
this.add(label);
this.setVisible(true);
}
@Override
//keyTyped = Invoked when a key is typed. Uses KeyChar, char output
public void keyTyped(KeyEvent e) {
switch(e.getKeyChar()){
case 'a':label.setLocation(label.getX()-10,label.getY());
break;
case 'w':label.setLocation(label.getX(),label.getY()-10);
break;
case 's': label.setLocation(label.getX(),label.getY()+10);
break;
case'd':label.setLocation(label.getX()+10,label.getY());
break;
}
}
@Override
//keyPressed = Invoked when a physical key is pressed down. Uses KeyCode, int output
public void keyPressed(KeyEvent e) {
// - move up, +move down, x+10: move right, y+10: move left
switch(e.getKeyCode()){
case 37:label.setLocation(label.getX()-10,label.getY());
break;
case 38:label.setLocation(label.getX(),label.getY()-10);
break;
case 39: label.setLocation(label.getX()+10,label.getY());
break;
case 40:label.setLocation(label.getX(),label.getY()+10);
break;
}
}
@Override
//keyReleased = called whenever a button is released
public void keyReleased(KeyEvent e) {
System.out.println("You released key char: "+ e.getKeyChar());//a,b,c,
System.out.println("You released key code: "+ e.getKeyCode());//65,66,67
}
}