在JFileChooser中输入文件名时退格使目录返回一级

时间:2013-12-18 04:54:39

标签: windows swing jfilechooser

我是Java Swing开发的新手,遇到以下问题而不确定如何解决它。

在提供文件名以使用JFileChooser保存文件时,输入退格(在文件名字段中)会使目录上升1级。仅在Windows上而不是在Linux上遇到此问题。

有人可以解释为什么会发生这种情况以及解决此问题的方法。

感谢。

1 个答案:

答案 0 :(得分:1)

我也有这个问题。 我的解决方案 - 是覆盖processKeyBinding方法,并在特定情况下停止方法,见下文:

 @Override 
  protected boolean processKeyBinding(KeyStroke ks, KeyEvent e,
                                        int condition, boolean pressed) {

        if (KeyEvent.VK_BACK_SPACE ==  e.getKeyChar()){
            if (jTextField!= null && jTextField.hasFocus()) 
                return false; 
        }

        return super.processKeyBinding (ks,e,condition,pressed);     
    }

jTextField是在我的 FileChooser类的承包商中计算的文件名字段

计算方法是 -

private Component getTextFieldInJFileChooser(Component [] c )
    {
        if (c == null)
            return null;

        for(Component k: c)
        {
             if( k instanceof JTextField) {
                return k;
             }
             else if(k instanceof JPanel) {
                 JPanel jp=(JPanel)k;
                 Component jTextField = getTextFieldInJFileChooser(jp.getComponents());
                 if (jTextField != null)
                     return jTextField;
             }
        }
        return null;
    }

成功&此致!