把Panel改成JPanel,同时Frame改成JFrame 为什么监听器就不好用了?
高手帮忙解答下
代码如下:
import java.awt.*;
import java.awt.Color;
import java.awt.event.*;
public class KeyListenTest{
public static void main(String[] args){
KeyTestF ktf = new KeyTestF();
MyPanel mp = new MyPanel();
mp.addKeyListener(new KeyTest());
ktf.add(mp);
}
}
//把Panel改成JPanel,同时Frame改成JFrame 为什么监听器就不好用了
class KeyTestF extends Frame{
public KeyTestF(){
init();
}
public void init(){
setLayout(null);
setSize(200,200);
setLocation(300,300);
this.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
setVisible(true);
}
}
//把Panel改成JPanel,同时Frame改成JFrame 为什么监听器就不好用了
class MyPanel extends Panel{
public MyPanel(){
init();
}
public void init(){
setSize(100,100);
setBackground(Color.yellow);
setVisible(true);
}
}
class KeyTest extends KeyAdapter{
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
System.out.println("向上");
break;
case KeyEvent.VK_DOWN:
System.out.println("向下");
break;
case KeyEvent.VK_LEFT:
System.out.println("向左");
break;
case KeyEvent.VK_RIGHT:
System.out.println("向右");
break;
}
}
}
高手帮忙解答下
代码如下:
import java.awt.*;
import java.awt.Color;
import java.awt.event.*;
public class KeyListenTest{
public static void main(String[] args){
KeyTestF ktf = new KeyTestF();
MyPanel mp = new MyPanel();
mp.addKeyListener(new KeyTest());
ktf.add(mp);
}
}
//把Panel改成JPanel,同时Frame改成JFrame 为什么监听器就不好用了
class KeyTestF extends Frame{
public KeyTestF(){
init();
}
public void init(){
setLayout(null);
setSize(200,200);
setLocation(300,300);
this.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
setVisible(true);
}
}
//把Panel改成JPanel,同时Frame改成JFrame 为什么监听器就不好用了
class MyPanel extends Panel{
public MyPanel(){
init();
}
public void init(){
setSize(100,100);
setBackground(Color.yellow);
setVisible(true);
}
}
class KeyTest extends KeyAdapter{
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
System.out.println("向上");
break;
case KeyEvent.VK_DOWN:
System.out.println("向下");
break;
case KeyEvent.VK_LEFT:
System.out.println("向左");
break;
case KeyEvent.VK_RIGHT:
System.out.println("向右");
break;
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货