我正在寻找一种在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

请报告扩展类中是否有错误。
谢谢

08-18 19:36