我正在寻找一种在Java文件选择器对话框中添加自动完成功能的方法。似乎Java Swing JFileChooser不支持该功能。我发现的唯一替代方法是gtk FileChooser,我想知道是否存在其他替代方法。
最佳答案
如果某人具有添加自动功能,则他/她必须访问文本字段,但是以通常的方式是不可能的。
那里有种黑客手段,可以搜索所有组件,然后找到文本字段的实例并将其返回。
这是代码。
private JTextField dis(JFileChooser jf) {
boolean hide =false;
LinkedList<Component> queue = new LinkedList<Component>();
queue.add(jf);
JTextField jtf=new JTextField();
while(queue.size() != 0) {
Component[] c = ((Container) queue.removeFirst()).getComponents();
for(int i = 0; i < c.length; i++) {
queue.add(c[i]);
if(c[i] instanceof JTextField) {
jtf = (JTextField) c[i];
jtf.setVisible(true);
jtf.setEnabled(true);
jtf.setText(" hello ");
return jtf;
}
}
}
return jtf;
}
这是扩展适用于自动完成功能的JFileChooser的类的链接
http://commondatastorage.googleapis.com/holyvincent/FileChooser/VinFC.java
请报告扩展类中是否有错误。
谢谢