Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java1.7但不使用1.6的KeyEvent_Java_Swing_Keylistener - Fatal编程技术网

使用Java1.7但不使用1.6的KeyEvent

使用Java1.7但不使用1.6的KeyEvent,java,swing,keylistener,Java,Swing,Keylistener,我们已经开发了一个插件项目,它是在Java1.7(在eclipse中)上开发的,构建在Java1.6上(构建工具是在Java1.6上的,我们很快就会升级到Java1.7) 我们在代码中使用了密钥侦听器,当核心应用程序在Java 1.7上运行时,该侦听器运行良好,但当核心应用程序在Java 1.6上运行时(当前的生产环境在Java 1.6上运行,它将进一步迁移到Java 1.7) 你知道我们能为这个问题做些什么吗 txtInput.addKeyListener(new KeyAdapter() {

我们已经开发了一个插件项目,它是在Java1.7(在eclipse中)上开发的,构建在Java1.6上(构建工具是在Java1.6上的,我们很快就会升级到Java1.7)

我们在代码中使用了密钥侦听器,当核心应用程序在Java 1.7上运行时,该侦听器运行良好,但当核心应用程序在Java 1.6上运行时(当前的生产环境在Java 1.6上运行,它将进一步迁移到Java 1.7)

你知道我们能为这个问题做些什么吗

txtInput.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            setAdjusting(cbInput, true);
            keyEvent = false;
            if (e.getKeyCode() == KeyEvent.VK_ENTER
             || e.getKeyCode() == KeyEvent.VK_UP
             || e.getKeyCode() == KeyEvent.VK_DOWN ) {
                selectionAllowed = true;
                e.setSource(cbInput);
                cbInput.dispatchEvent(e);
                keyEvent = true;
                if (e.getKeyCode() == KeyEvent.VK_DOWN
                 || e.getKeyCode() == KeyEvent.VK_UP ) {
                    if(cbInput.getSelectedItem() != null ) {
                        txtInput.setText(cbInput.getSelectedItem().toString()); 
                    }   
                }
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {                      
                    cbInput.setPopupVisible(false);
                    if(txtInput.getText() != null ) {
                        try {
                            BFMDateTime end_date;
                            BRMap map = new BRMap();
                            map.putElem("content", txtInput.getText().trim());
                            map.putElem("action", "ButtonClicked");
                            map.putElem("start_date", timeZone.bfmDateToSearchFormat(new BFMDateTime(uiObj.fromDate.getText().toString())));
                            end_date = new BFMDateTime(uiObj.toDate.getText().toString());
                            end_date.addHours(23);
                            end_date.addMinutes(59);
                            end_date.addSeconds(59);
                            map.putElem("end_date", timeZone.bfmDateToSearchFormat(end_date));
                            CommandMsg commandMsg = new CommandMsg(AppConstants.DEALER_SEARCH_COMMAND, map);
                            RequestHandler requestHandler = new RequestHandler();
                            requestHandler.handleRequest(commandMsg,AppConstants.RESPONSE_SOURCE,uiObj);
                        } catch (NumberFormatException e1) {
                            e1.printStackTrace();
                        } catch (BFMTimeException e1) {
                            e1.printStackTrace();
                        }

                    }
                } 
            }
            if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
                cbInput.setPopupVisible(false);
            }
            setAdjusting(cbInput, false);
        }
    });

您是否收到任何错误消息?如果你这样做,他们会怎么说?我没有收到任何错误消息。VK_ENTER正常工作时,不会捕获VK_UP和VK_DOWN事件。是否检查了向上/向下键、普通光标键以及数字键盘?不声称这是解决方案,但它可能有助于指出问题所在。您是否检查过,在这种情况下,您是否可以使用
keyreased
keyTyped
事件?1)对于Swing,我们通常使用而不是较低级别的
keylister
。2) 为了更快地获得更好的帮助,可以发布一个(最小完整的可验证示例)或(简短、自包含、正确的示例)。