CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

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

楼主liqq(蛐蛐)2004-04-02 13:55:03 在 Java / J2SE / 基础类 提问

用什么   ?  
   
  上面第一个问题,30分;  
   
  2.   我在一个JTextField   上注册按键事件之后,用case   分键符来执行不同的代码。  
  其中Enter键的响应代码较复杂,它需要开一个Dialog,Dialog上有很多控件,带有数据库操作(有好多种,每次开的不同)。       问题是Dialog   dispose之后回到原来界面,几次之后JTextField对Enter键就无效了,别的定义键正常。  
   
   
   
  是不是一个键码太小,驼不懂那么大的代码,还是后面的代码把JTextField    
  的Enter键吃了,没异常处理。  
   
  各位大虾?我该向哪里使劲?       指点一下大方向吧。  
   
  问题点数:60、回复次数:11Top

1 楼duxu2004(渡虚)回复于 2004-04-02 14:00:44 得分 5

不太明白,代码贴出来一部分看看  
  Top

2 楼bigcrazy(大疯狂)回复于 2004-04-02 14:21:31 得分 10

问题描述好象不够清楚啊。Top

3 楼liqq(蛐蛐)回复于 2004-04-02 15:44:35 得分 0

1。第一个相关的事件为  
   
  void   jTable2_keyPressed(KeyEvent   e)   {  
          if   (e.getKeyCode()   ==   KeyEvent.VK_SPACE)   {  
              if   (this.jTable2.getRowCount()   >   0)   {  
                    想在这里然它产生点一下鼠标的效果,就在选中的单位格上                  
                      。  
              }  
          }  
      }  
   
  我把表的第3列做成了combobox,不点鼠标出不来,我想不用鼠标把它的侠拉列表显出来。(会有更专业的方法吧?)Top

4 楼liqq(蛐蛐)回复于 2004-04-02 16:22:56 得分 0

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上的键盘事件去掉再添上。也不行。  
                应该是那一方面的问题呢?  
   
         
                各位高手,请帮帮忙!接了个烂摊子,自己水平有限。只有靠大家了,谢谢!!!Top

5 楼flyforlove(吾将远去)回复于 2004-04-02 16:36:28 得分 20

可以添加一个addActionListener,专门来处理回车事件。Top

6 楼duxu2004(渡虚)回复于 2004-04-03 00:40:29 得分 20

你肯定在响应enter后抛出异常了!是程序异常了,查察看Top

7 楼liqq(蛐蛐)回复于 2004-04-03 12:08:17 得分 0

感谢flyforlove!    
  本来想另定义一个热键的,这样好,不用改变操作了,我去试试;  
   
   
  感谢duxu2004(渡虚)!  
  我用try   catch,   把switch(e.getKeyCode())包住,e.printStackTrace();   都打不出来什么异常!enter按下后,后面的代码很多,涉及好多类,怎么也不能不出半点不合适吧,可是能运行。  
   
   
   
   
  Top

8 楼liqq(蛐蛐)回复于 2004-04-03 12:16:17 得分 0

jTable里的combobox为什么不能像在外面一样,得到焦点后按下箭头出来下拉单,非得用鼠标点才出来?Top

9 楼liqq(蛐蛐)回复于 2004-04-04 12:48:44 得分 0

找到了,原来F2键可以让jTable进入编辑状态,这时按下箭头就可以了。  
      F2好特殊呀!我能把这个键的功能用别的键代替吗?  
       
  Top

10 楼xuegaosp(雪糕Sp)回复于 2004-04-04 19:35:35 得分 5

upTop

11 楼liqq(蛐蛐)回复于 2004-04-05 16:25:05 得分 0

非常感谢大家!     第二个我的问题是我的错,没有发现有一个地方把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是怎么回事。  
  我想弄个例子。发个新的。      
  Top

相关问题

  • 屏蔽鼠标按键
  • 鼠 标 按 键 的 问 题
  • 按键模仿鼠标
  • 如何模拟鼠标按键
  • 怎样判断 鼠标按键?
  • 鼠标按键状态的判断
  • 如何屏蔽鼠标按键
  • 如何向开始菜单发送鼠标按键消息
  • 如何截获鼠标消息(按键,移动)?
  • 如何用程序模拟鼠标的按键活动

关键词

  • 鼠标
  • 代码
  • keyevent
  • jtextfield
  • jtable
  • vk
  • 键
  • ksset
  • 事件
  • enter

得分解答快速导航

  • 帖主:liqq
  • duxu2004
  • bigcrazy
  • flyforlove
  • duxu2004
  • xuegaosp

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo