2016-02-20 45 views
-1

我从堆栈溢出读了很多答案,但这样我张贴的问题java的keyPressed事件

我写的代码键按下行动中的Java Swing,但是当我过我按什么都没发生解决不了我的问题关键所以请建议我在哪里写错码我的代码是在

textField_1.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyPressed(KeyEvent e) { 
      if(e.getKeyCode()==KeyEvent.VK_TAB){ try{ 
       String query="select * from checklist where sbno='"+sb+"'"; 
       PreparedStatement pst=connection.prepareStatement(query); 
       ResultSet rs=pst.executeQuery(); 

       while (rs.next()){ 
        Shipping_Marks.setText(rs.getString("smarks")); 
        Shippername.setText(rs.getString("shipper")); 

       }   
       rs.close(); 
      }catch (Exception e1){ 
       e1.printStackTrace(); 
      } 

      } 
+0

只添加System.out.print(“按”);'再次测试 –

+0

其也不起作用 –

+0

是的,所以当你发布一个问题时只有相关的最小代码。数据库部分不需要这里 –

回答

0

选项卡被截取之前,它去的领域。如果你想拦截Tab,你必须使用解决方法,或者更好的是,不要使用Tab作为截取的关键。

No Tab key-pressed or key-released events are received by the key event listener. This is because the focus subsystem consumes focus traversal keys, such as Tab and Shift Tab.

总的想法是,标签用于组件之间进行切换。这是它的主要功能。

另一种方法(你)可能是从标签这样的旅行排除这一领域:

text_Field1.setFocusTraversalKeysEnabled(false); 

或本领域失去焦点,并使用该抓住这个事件的方法,你可以使用这个事实。 这里有一些tutorial这样做。

+0

如何使用容器 –

+0

即时通讯新的请看一些例子 –

+0

先生我试过为此执行的操作事件,它使用回车键,但我想将其设置为制表键 –