JAVA JTable 自定义CellEditor中定义了键盘事件,输入时确不响应键盘事件?

做了一个JTable,使用了自定义的单元格编辑器,编辑器继承自JTextField。我在编辑器中定义了键盘事件,用于限定这个编辑器只能输入数字。但在我在表格中输入的时候,使用鼠标点击单格后再输入值,可以正常响应键盘事件,但是用键盘选中该单元格后再输入值时,可以输入任意字符,键盘事件不被触发,定义的输入规则无用。请教高手,如何解决这个问题。

1个回答

你如果用的是onclick鼠标点击事件,如果是用键盘选中,需要换一种触发事件

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
让JScrollPane不响应键盘事件
问题描述:rn 我把一个JPanel jpanel放在一个JScrollPane jscrollpane里面,jpanel响应键盘事件,比如上下左右键移动里面的图象。问题是此时jscrollpane的滚动条会跟着动,因为键盘事件会传递到jscrollpane,那我在jpaneld的键盘事件处理函数里把键盘事件毁掉,像下面这样:rnpublic void keyPressed(KeyEvent keyevent)rnrn ...//事件处理,略rn keyevent.consume();rnrn这样按键盘方向键时jscrollpane的滚动条就不会跟着动了。但是问题又来了,原来定义的菜单快捷键不响应了。定义菜单快捷键的代码如下:rnjmenuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, InputEvent.ALT_MASK));rn本来是打算在jpanel按ALT+2后图象放大2倍,由于jpanel处理键盘事件后把KeyEvent销毁了,键盘事件不能发送给菜单,不知道这个情况怎么处理?是否可以在keyevent.consume()之前手动把事件传给菜单处理,那调用什么函数?或者有其它的办法...
为什么键盘事件不响应?
我正在做一个FLASH播放器,窗体就是不响应键盘事件,所以只要FLASH一全屏,rn就不能通过键盘恢复。rn 不知什么原因,还请高手指点!!谢谢
为什么我的键盘事件不响应了?
我在WM_KEYDOWN事件里定义了esc键退出程序。运行的时候正常,但是当我点击了窗口上的一个按钮后,再按esc键却没有任何反映了。不知为什么。
为什么不响应我的键盘事件
void CYw_wrDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) rnrn // TODO: Add your message handler code here and/or call defaultrn MessageBox("身份验证通过");rn
如何屏蔽JTable的键盘事件
在JTable中默认情况下,按回车键选中的行自动跳转到下一行rn我想屏蔽掉这个事件,而自己处理。rn该如何做?
请教:为什么不响应键盘事件呢
public void keyPressed(KeyEvent e) rn rn Person man=(Person)e.getSource(); // 返回事件源rn if(e.getKeyCode()==KeyEvent.VK_KP_DOWN) // 判断是否按下了“↓”键rn rn goDown(man); rn rn if(e.getKeyCode()==KeyEvent.VK_KP_UP) // 判断是否按下了“↑”键rn rn goUp(man);rn rn if(e.getKeyCode()==KeyEvent.VK_KP_LEFT) // 判断是否按下了“←”键rn rn goLeft(man);rn rn if(e.getKeyCode()==KeyEvent.VK_KP_RIGHT) // 判断是否按下了“→”键rn rn goRight(man); rn rn rn进入调试状态 发现keyPressed方法执行是执行了,但if后面的语句都没执行,莫非if的条件写的不对吗?应该怎么写呢?
java 键盘事件
package 键盘事件; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub KeyEvent1 win=new KeyEvent1(); win.setTitle("键盘事件"); } } package 键盘事件; import
java键盘事件
在以下程序中我想在红色字体(或******处)处写入一句if语句,rn当开始按键盘方向键的时候跳出循环,从而转向执行该按键事件,不知道这个if语句的条件怎么写?rn请各位指点指点!rn在此谢谢咯!rnimport java.applet.Applet;rnimport java.awt.Color;rnimport java.awt.Graphics;rnimport java.awt.event.KeyEvent;rnimport java.awt.event.KeyListener;rnrnrnpublic class Test2 extends Applet implements KeyListenerrn int x = 0,y = 0;rn int r = 20;rn rn public void init()rn this.addKeyListener(this);rn rn rn public void paint(Graphics g)rn g.setColor(Color.red) ;rn g.fillOval(x, y, r,r) ;rn rn rn rn public void keyPressed(KeyEvent e) rn switch(e.getKeyCode())rn case KeyEvent.VK_LEFT:rn rn rn x = x - 2 ;rn if( x<= 0 ) x = 800;rn setLocation(x, y) ; break ;rn case KeyEvent.VK_RIGHT:rn rn rn x = x + 2 ;rn if( x>800 ) x = 0 ;rn setLocation( x, y ) ;rn break ;rn rn rn case KeyEvent.VK_UP:rn rn y = y - 2 ;rn if(y<=0)rn y=600;rn setLocation(x, y);rn break;rn rn case KeyEvent.VK_DOWN:rn rn y = y + 2;rn if(y>=600) y = 0 ;rn setLocation(x, y) ;rn break;rn rn rn rn rn rn public void keyReleased(KeyEvent e) rn switch(e.getKeyCode())rn case KeyEvent.VK_LEFT:rn while(true)rn x = x - 2 ; setLocation( x, y );rn try rn Thread.sleep(100);rn rn catch (InterruptedException e1) rn rn e1.printStackTrace();rn rn rn****** [color=#FF0000]if()break;[/color]rn if( x<= 0 ) rn x = 800;rn break;rn rn case KeyEvent.VK_RIGHT:rn while(true)rn x = x + 2 ; setLocation( x, y ) ;rn try rn Thread.sleep(100);rn rn catch (InterruptedException e1) rn rn e1.printStackTrace();rn rn rn if( x>800 )rn x = 0 ;rn //setLocation( x, y ) ;rn break ;rn rn rn case KeyEvent.VK_UP:rn while(true)rn y = y - 2 ; setLocation( x, y ) ;rn try rn Thread.sleep(100);rn rn catch (InterruptedException e1) rn rn e1.printStackTrace();rn rn rn if(y<=0)rn y=600;rn //setLocation(x, y);rn break;rn rn case KeyEvent.VK_DOWN:rn while(true)rn y = y + 2; setLocation( x, y ) ;rn try rn Thread.sleep(100);rn rn catch (InterruptedException e1) rn rn e1.printStackTrace();rn rn rn if(y>=600)rn y = 0 ;rn //setLocation(x, y) ;rn break;rn rn rn rn rn rn rn public void keyTyped(KeyEvent e) rn rn
怎么禁用jtable所有键盘事件
jtable按键盘上的下键就会从该行到下一行,回车也会换行,还有其它更多的键。rn问题:有没有什么方法把所有的键事件全部屏蔽调,当我要的时候又启动。rn给个代码例子,谢谢...rn在线。。答对马上就结贴...
JAVA键盘事件。。。。。。。。。。
import java.awt.event.KeyEvent;nimport java.awt.event.KeyListener;nnimport javax.swing.JFrame;nimport javax.swing.JLabel;nnpublic class Demo extends JFrame nn public Demo() n JLabel l = new JLabel("没有点击键盘Q键");// 创建标签n add(l);// 添加标签n l.addKeyListener(new KeyListener() // 为标签添加键盘事件监听n @Overriden public void keyTyped(KeyEvent e) n // TODO Auto-generated method stubnn nn @Overriden public void keyReleased(KeyEvent e) n // TODO Auto-generated method stubnn nn @Overriden public void keyPressed(KeyEvent e) n if (e.getKeyCode() == KeyEvent.VK_Q) // 如果按下的是Q键n l.setText("点击了Q键");// 更改标签的值n nn n );n setSize(200, 200);// 设置大小n setDefaultCloseOperation(EXIT_ON_CLOSE);// 关闭窗口退出程序n setVisible(true);// 窗体可以显示n nn public static void main(String[] args) n new Demo();n nnnn这里按Q了,它不显示,怎么办????
jTable单元格相应键盘事件的问题。。
请问如何控制单元格按回车后,让光标走到下一行的某个指定的单元格??
键盘事件
键盘事件    1. onkeydown 键盘按下        触发条件:当键盘被按下的时候触发        用法:document.onkeydown = function (e) { console.log(&quot;键盘按下&quot;) }    2. onkeyup 键盘抬起        触发条件:当键盘被抬起的时候触发        用法:document.onkeyup = funct...
WinForm中窗体控件的键盘事件KeyPress不响应
今天在写一个小Demo的时候惊讶的发现按了键盘上的键Form的KeyPress事件居然没有响应,断点一直进不去。试了一下控件其他两个事件KeyDown和KeyUp,也是进不去。于是在网上找了找,找到一个答案,说是在需要控件响应KeyPress事件的时候,父窗体的KeyPreview必须设置为True,设置了一下,果然解决了问题。好记性不如烂笔头,偷偷摸摸得记录一下。...
OSG中osgGA::GUIEventHandler键盘事件不响应的解决办法
在OSG的键盘事件中,时不时碰到按键盘没有任何响应的问题,一度怀疑是键盘坏了或者不灵敏。但偶然间发现按数字键是可以有响应的,仅有字符键不响应。百思不得其解中,遇高人指点:输入法的问题。 需要把输入法转换到英文输入,这样就没问题了。希望对有需要的人有所帮助吧。。。...
键盘事件!
vb6中在文本框中怎样才能获知用户按下了小键盘旁边的上、下、左、右键,请各位指教,谢谢!
键盘事件?
如何让”确定“响应回车?急rn我是一名初学者rn谢谢
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池