java keyPressed事件

时间:2016-02-20 13:39:11

标签: java swing

我从堆栈溢出中读过很多答案,但无法解决我的问题,所以我发布了问题

我已经在java swing中编写了Key Press Action的代码,但是当我按下键时没有任何事情发生,所以请在我编写错误代码的地方建议我的代码如下

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();
            }

            }

1 个答案:

答案 0 :(得分:0)

Tab在进入该字段之前被拦截。如果要拦截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.

一般的想法是Tab用于在组件之间切换。这是它的主要功能。

另一种方法(对你而言)可能是将这个字段排除在Tab之外,如下所示:

text_Field1.setFocusTraversalKeysEnabled(false);

或者您可以使用此字段失去焦点并使用捕获此事件的方法的事实。 这里有一些tutorial