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

Windows 在JFileChooser中输入文件名时退格使目录后退一级,windows,swing,jfilechooser,Windows,Swing,Jfilechooser,我对JavaSwing开发非常陌生,遇到了以下问题,不确定如何解决它 使用JFileChooser提供文件名以保存文件时,输入退格(在文件名字段中)会使目录上升1级。此问题仅在Windows上遇到,而在Linux上没有遇到 有人能解释一下为什么会发生这种情况,以及解决这个问题的方法吗 谢谢。我也有这个问题。 我的解决方案是重写processKeyBinding方法,并在特定情况下停止该方法,请参见以下内容: @Override protected boolean processKeyBi

我对JavaSwing开发非常陌生,遇到了以下问题,不确定如何解决它

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

有人能解释一下为什么会发生这种情况,以及解决这个问题的方法吗

谢谢。

我也有这个问题。 我的解决方案是重写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是文件名字段,是在myFileChooser类的承包商中计算的

计算方法如下:

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

成功与问候

谢谢你的回答。这似乎是由于我们的应用程序中的配置而发生的。我改变了主意,让它开始工作了。