黑马程序员技术交流社区
标题:
Jpanel无法实现键盘监听?
[打印本页]
作者:
刘云龙
时间:
2012-10-10 15:15
标题:
Jpanel无法实现键盘监听?
<p>import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import
java.awt.event.KeyEvent;</p>
<p>import javax.swing.JFrame;
import javax.swing.JPanel;</p>
<p>public class MyPanel extends JPanel
{
int x = 12, y = 22;
MyPanel()
{
this.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
int code = e.getKeyCode();
switch(code)
{
case KeyEvent.VK_UP:add();//在这里调用了add()方法但不响应?
}
}
});
}
public void paint(Graphics g)
{
g.drawString("MyPanel",x,y);
}
public void add()
{
x++;
y++;
repaint();
}
public static void main(String[] args)
{
//
TODO Auto-generated method stub
JFrame f = new
JFrame();
f.setBounds(1, 2, 300,
300);
f.setVisible(true);
f.add(new
MyPanel());
}</p>
<p>}</p>
复制代码
如何在JPanel中实现键盘事件?
作者:
柏占肖
时间:
2012-10-10 17:16
this.setFocusable(true);
在构造方法里加上这句吧 JPanel组件的默认焦点状态为false 所以就无法响应你为它添加的事件, 改成true就行了
作者:
唐增友
时间:
2012-10-10 17:41
public static void main(String[] args)
{
JFrame f = new
JFrame();
f.setBounds(1, 2, 300, 300);
MyPanel myPanel=new MyPanel();
f.add(myPanel);
f.setVisible(true);
myPanel.requestFocusInWindow();//让面板获得焦点
}
复制代码
作者:
刘云龙
时间:
2012-10-16 22:44
用requestFocusInWindow()实现的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2