请教关于键盘完成代替鼠标(在线等待) if(e.getKeyCode()==KeyEvent.VK_F2)==号换成equals() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我估计是你的Frame根本就没有接受到KeyPressed事件 在JFrame构造函数中加上 this.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e) { this_keyPressed(e); } }); BluePig:你所说的我的脚本中也写上了 试试这个例子,我刚写的,肯定行import javax.swing.*;import java.awt.*;import java.awt.event.*;class Test extends JFrame{ public Test() { this.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e) { this_keyPressed(e); } }); } void this_keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_F2) System.out.println("F2"); } public static void main(String[] args) { Test t=new Test(); t.setSize(300,300); t.setVisible(true); } } 你运行这个了吗?我这里真的不行呀我是在jbuilder里编写的,所以你所说的this.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e) { this_keyPressed(e);}};是自动生成的。 我刚刚运行过!!!这是气死我了,屏幕上明明打印出“F2”了!!你不要运行你的程序,就把我这个拷贝到JB中试试我估计是你的JFrame上有别的东西,比如JTextField,嘿嘿,这时候JFrame就接收不到KeyPressed了,你应该在JTextField的KeyPressed中加代码 先这么写,看看是否能输出"aaaaa",如果能,证明事件已经响应,那就是addNewRow()方法的问题了。void this_keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_F2){ System.out.print("aaaaa"); addNewRow(); }} Swing的键盘事件处理不是这么做的,每个控件都在LookAndFeel中定义了一套InputMap和ActionMap,由系统控制焦点和响应key-action对。具体方法在Java2图形编程swing卷中有一点描述。如果要给JComponent加上KeyListener,也不是不可以,但是可能会造成冲突或者是意外的结果。 BluePig(吹猪):你所说的我也运行了,是可以输出f2,但我这个窗口是作为内部窗口的,f2就显示不出来了。请问还有其他的方法吗?namowen(寒号不已): 这里aaaaa都无法输出,这个窗口是个内部窗口。方法是没错的,点击这个按钮其功能是实现的。 this.getContentPane().addKeyListener(new java.awt.event.KeyAdapter() 代替this.addKeyListener(new java.awt.event.KeyAdapter() 即可 java数据类型的小问题,在线等 Graphics2D求问 timer不执行问题 对象保存到mysql中存现的问题 javamail的两个问题,求助指点 关于dom4j的utf-8编码的问题 finalize()的小问题请教。 java与windows平台的dll库怎么调用 请教,这句话什么意思 new Class[] {String.class}? How can I convert a Char type to a Integer type? 高手请进:关于内部窗体的键盘事件!!! 我做了一个APPLET,可是在IE中却不出运行结果???在线等待!!!
this.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(KeyEvent e) {
this_keyPressed(e);
}
});
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Test extends JFrame
{
public Test()
{
this.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(KeyEvent e) {
this_keyPressed(e);
}
});
}
void this_keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_F2)
System.out.println("F2");
}
public static void main(String[] args)
{
Test t=new Test();
t.setSize(300,300);
t.setVisible(true);
}
}
我是在jbuilder里编写的,所以你所说的
this.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(KeyEvent e) {
this_keyPressed(e);}};是自动生成的。
你不要运行你的程序,就把我这个拷贝到JB中试试
我估计是你的JFrame上有别的东西,比如JTextField,嘿嘿,这时候JFrame就接收不到KeyPressed了,你应该在JTextField的KeyPressed中加代码
void this_keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_F2){
System.out.print("aaaaa");
addNewRow();
}
}
namowen(寒号不已): 这里aaaaa都无法输出,这个窗口是个内部窗口。
方法是没错的,点击这个按钮其功能是实现的。