3

ファイルではなくディレクトリを選択するために、Web ページに参​​照ボタンを作成したいと考えています。入力型ファイルがここでは機能しないことはわかっていますが、Javascript でそれを行う方法はありますか。IE で可能なクライアント マシンのファイルパスを取得したいのですが、他のブラウザはサポートしていませんが、それで問題ありません。

私が行き詰まった方法は、ボタンでファイルディレクトリを取得する方法です。

以下は、ブラウザからアプレットを呼び出すために使用しているコードですが、ブラウザで C:\PROGRA~1\Java\jre7\lib\deploy.jar エラーが発生しています。Java 1.5を使用してクラスファイルをコンパイルしました

<applet code="com.life.draw.BrowsePage.class"></applet>

コード

public class BrowsePage extends JApplet {
@Override
public void paint(Graphics g) {
    // TODO Auto-generated method stub
    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(new java.io.File("."));
    chooser.setDialogTitle("Browse the folder to process");
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    chooser.setAcceptAllFileFilterUsed(false);

    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        System.out.println("getCurrentDirectory(): "+ chooser.getCurrentDirectory());
        System.out.println("getSelectedFile() : "+ chooser.getSelectedFile());
    } else {
        System.out.println("No Selection ");
    }
}
}
4

2 に答える 2

3

なぜあなたはあなたのpaintメソッドでこれを呼んでいるのですか?これは、アプレットが実行されるたびに新しいウィンドウを作成しようとしている可能性がありますpainted

public void paint(Graphics g) {
    // TODO Auto-generated method stub
    JFileChooser chooser = new JFileChooser();
    /*...*/

代わりに、メソッドに を作成し、JButtonそれにinitをアタッチActionListenerします...

public void init() {
    setLayout(new GridBagLayout());
    JButton browse = new JButton("...");
    browse.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            JFileChooser chooser = new JFileChooser();
            chooser.setCurrentDirectory(new java.io.File("."));
            chooser.setDialogTitle("Browse the folder to process");
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            chooser.setAcceptAllFileFilterUsed(false);

            if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                System.out.println("getCurrentDirectory(): "+ chooser.getCurrentDirectory());
                System.out.println("getSelectedFile() : "+ chooser.getSelectedFile());
            } else {
                System.out.println("No Selection ");
            }
        }
    });
    add(browse);
}

また、アプレットでできることとできないこともご覧ください。

于 2013-08-27T07:55:44.503 に答える