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