在Java Swing中输入char后立即清除textField

时间:2015-03-09 15:49:00

标签: java swing documentlistener

在输入textField之后,其中一个字母:" e,E,f,F,g,G",我的应用程序中的comboBox正在改变。我想在输入其中一封信后立即清除我的textField,但我不能这样做。我用:

tekstField.setText("");

但它不起作用。可能是因为我无法在Swing中听听。

   textField.getDocument().addDocumentListener(new DocumentListener() {

                public void changedUpdate(DocumentEvent e) {
                    updateLog(e);
                }

                public void removeUpdate(DocumentEvent e) {

                }

                public void insertUpdate(DocumentEvent e) {
                    updateLog(e);
                }

                public void updateLog(DocumentEvent e) {
                    Document doc = (Document) e.getDocument();
                    int docLength = doc.getLength();
                    String key;
                    try {
                        key = e.getDocument().getText(0, docLength);
                        if (docLength == 1 && !key.matches("^[0-9]$")) {
                            char labSymbol = key.charAt(0);
                            switch (labSymbol) {
                                case 'E' :
                                case 'e' :
                                    labTypeComboBox.setSelectedIndex(0);
                                    break;
                                case 'F' :
                                case 'f' :
                                    labTypeComboBox.setSelectedIndex(1);
                                    break;
                                case 'G' :
                                case 'g' :
                                    labTypeComboBox.setSelectedIndex(2);
                                    break;
                                default :
                                    break;
                            }
                            tekstField.setText("");
                        }
                    } catch (BadLocationException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }

                }

            });

有谁知道如何解决这个问题?

0 个答案:

没有答案