jtable的按键事件做成像鼠标点击一下一样。可能吗?

liqq 2004-04-02 01:55:03
用什么 ?

上面第一个问题,30分;

2. 我在一个JTextField 上注册按键事件之后,用case 分键符来执行不同的代码。
其中Enter键的响应代码较复杂,它需要开一个Dialog,Dialog上有很多控件,带有数据库操作(有好多种,每次开的不同)。 问题是Dialog dispose之后回到原来界面,几次之后JTextField对Enter键就无效了,别的定义键正常。



是不是一个键码太小,驼不懂那么大的代码,还是后面的代码把JTextField
的Enter键吃了,没异常处理。

各位大虾?我该向哪里使劲? 指点一下大方向吧。

...全文
138 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liqq 2004-04-05
  • 打赏
  • 举报
回复
非常感谢大家! 第二个我的问题是我的错,没有发现有一个地方把ENTER 给屏蔽掉了。
好不容易找到的,我真是菜鸟一个! 麻烦大家,
谢谢!谢谢!
分数太少了,参与者有分

AWTKeyStroke ks=AWTKeyStroke.getAWTKeyStroke(java.awt.event.KeyEvent.VK_ENTER,0);
Set ksSet=new HashSet();
ksSet.add(ks);
this.oldSet=KeyboardFocusManager.getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(0);
KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(0,ksSet);

这个贴子太长了,我先结贴,第一个问题还不知道那个神奇的F2是怎么回事。
我想弄个例子。发个新的。
liqq 2004-04-04
  • 打赏
  • 举报
回复
找到了,原来F2键可以让jTable进入编辑状态,这时按下箭头就可以了。
F2好特殊呀!我能把这个键的功能用别的键代替吗?

xuegaosp 2004-04-04
  • 打赏
  • 举报
回复
up
渡虚 2004-04-03
  • 打赏
  • 举报
回复
你肯定在响应enter后抛出异常了!是程序异常了,查察看
liqq 2004-04-03
  • 打赏
  • 举报
回复
jTable里的combobox为什么不能像在外面一样,得到焦点后按下箭头出来下拉单,非得用鼠标点才出来?
liqq 2004-04-03
  • 打赏
  • 举报
回复
感谢flyforlove!
本来想另定义一个热键的,这样好,不用改变操作了,我去试试;


感谢duxu2004(渡虚)!
我用try catch, 把switch(e.getKeyCode())包住,e.printStackTrace(); 都打不出来什么异常!enter按下后,后面的代码很多,涉及好多类,怎么也不能不出半点不合适吧,可是能运行。




flyforlove 2004-04-02
  • 打赏
  • 举报
回复
可以添加一个addActionListener,专门来处理回车事件。
liqq 2004-04-02
  • 打赏
  • 举报
回复
2. 基本上是一个frame上有很多东西,包括一个jTextField。 相关的jTextField事件为:

void jTextField1_keyReleased(KeyEvent e) {
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
............
break;
case KeyEvent.VK_DOWN:
............
break;
case KeyEvent.VK_ENTER:
try {
do{
TransIterator ti=new TransIterator(new DataContainer(),this,trans);
ti.execute();
}while(trans.isLoop());
}
catch (ActionException ex) {
this.showMessage(ex.getMessage());
}
break;
default:

}
}

上面的东西能运行
很长,我简略了。

enter 后能开出来一个Dialog,Dialog上也有一些功能,包括数据库的操作。
问题是我按enter键开出来几次Dialog(有好多,相似单不同)后,那个jTextField上的KeyEvent.VK_ENTER事件就失效了,
连jTextField1_keyReleased(KeyEvent e) 这个方法都进不了(switch,case处设断点,运行不到)。

而别的case是正常的,和原来功能一样,
case KeyEvent.VK_DOWN:
............
break;
case KeyEvent.VK_ENTER:

难道jTextField上的 KeyEvent.VK_ENTER 被吃了?

我也没在别的地方定义enter热键。也试过在frame得到焦点的事件上把
jTextField上的键盘事件去掉再添上。也不行。
应该是那一方面的问题呢?


各位高手,请帮帮忙!接了个烂摊子,自己水平有限。只有靠大家了,谢谢!!!
liqq 2004-04-02
  • 打赏
  • 举报
回复
1。第一个相关的事件为

void jTable2_keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
if (this.jTable2.getRowCount() > 0) {
想在这里然它产生点一下鼠标的效果,就在选中的单位格上

}
}
}

我把表的第3列做成了combobox,不点鼠标出不来,我想不用鼠标把它的侠拉列表显出来。(会有更专业的方法吧?)
bigcrazy 2004-04-02
  • 打赏
  • 举报
回复
问题描述好象不够清楚啊。
渡虚 2004-04-02
  • 打赏
  • 举报
回复
不太明白,代码贴出来一部分看看

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧