2
我对Java Swing开发非常陌生,遇到以下问题并且不确定如何解决它。在JFileChooser中输入文件名时使用Backspace使目录返回一级
在使用JFileChooser提供文件名以保存文件时,输入退格(位于文件名字段中)使目录上升1级。此问题仅在Windows上遇到,而不在Linux上。
有人可以解释为什么会发生这种情况,并解决这个问题的方法。
谢谢。
我对Java Swing开发非常陌生,遇到以下问题并且不确定如何解决它。在JFileChooser中输入文件名时使用Backspace使目录返回一级
在使用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的是,在我文件选择类
承办计算的文件名域的方法来计算是 -
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;
}
成功&商祺!
感谢您的回答。这似乎是由于我们应用程序中的配置而发生的。我改变了这一点,并使其工作。 – myspri