2

Javaのファイル選択ダイアログにオートコンプリート機能を追加する方法を探しています。JavaSwingJFileChooserはそれをサポートしていないようです。私が見つけた唯一の選択肢はgtkFileChooserです。他の選択肢が存在するかどうかを知りたいです。

4

3 に答える 3

1

1つの代替方法は、SWTFileDialogを使用することです。これはネイティブオペレーティングシステムのファイルダイアログ(LinuxのGTKなど)を使用するため、ユーザーがOSから使用するのとまったく同じ動作を取得します。これには、Linux / GTKおよびMacでのオートコンプリートが含まれます(Windowsでもオートコンプリートが提供されているかどうかはわかりません)。

その目的のためだけにSWTを含める価値があるかどうかはまったくわかりませんが、この代替案について言及したいと思います。

于 2011-02-13T14:34:52.207 に答える
1

自動機能を追加した場合は、テキストフィールドにアクセスする必要がありますが、通常の方法ではアクセスできません。

ある種のハックがあり、すべてのコンポーネントを検索してから、テキストフィールドのインスタンスを見つけてそれを返します。

これがコードです。

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

拡張クラスにバグがある場合は報告してください。ありがとう

于 2011-03-25T17:32:11.977 に答える
0

DocumentListenerファイルチューザーでファイルパスとファイル名を保持するTextFieldにを追加できる独自のFileChooserを実装するのはどうですか。で上記を実行できるかどうかわからないJFileChooser。ただし、ファイルチューザーの動作を、追加されたオートコンプリート機能とともにデフォルトのJFileChooserと一致させたい場合は、ある程度のコードが必要になります。

于 2011-02-13T12:41:50.373 に答える