Announcement

Collapse
No announcement yet.

JFileChooser mit der Option FILES_ONY funktioniert nicht ??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JFileChooser mit der Option FILES_ONY funktioniert nicht ??

    Hi Leute,

    Ich verwende den JFileChooser um Dateien zu speichern. Die Dateien sollen in einem
    festgelegtem Ordner gespeichert werden. Man darf auch den Ordner nicht wechseln.
    Dazu bietet sich ja die setFileSelectionMode mit der Option FILES_ONY an.
    Wie dieses Beispiel:

    JFileChooser fc = new JFileChooser();
    fc.setFileSelectionMode(JFileChooser.FILES_ONLY);

    Aber es funktioniert nicht. Ich kann trotzdem den Ordner wechseln.
    Ich verwendet JDK 1.3.1.

    Hat jemand eine Idee woran das liegen könnte ?
    Oder Vorschläge die Dateien immer in einem Festgelegtem Verzeichniz
    zu speichern, es sollte eigentlich das komfortable Sava as Dialog verwendet werden können.

    Danke, jens

    Beispiel-Code:
    FileChooserDemo.java:
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.filechooser.*;

    public class FileChooserDemo extends JFrame {
    static private final String newline = "\n";

    public FileChooserDemo() {
    super("FileChooserDemo");

    //Create the log first, because the action listeners
    //need to refer to it.
    final JTextArea log = new JTextArea(5,20);
    log.setMargin(new Insets(5,5,5,5));
    log.setEditable(false);
    JScrollPane logScrollPane = new JScrollPane(log);

    //Create a file chooser
    final JFileChooser fc = new JFileChooser();
    fc.setFileSelectionMode(JFileChooser.FILES_ONLY); /* I ADDED THIS LINE */

    //Create the open button
    ImageIcon openIcon = new ImageIcon("images/open.gif");
    JButton openButton = new JButton("Open a File...", openIcon);
    openButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    int returnVal = fc.showOpenDialog(FileChooserDemo.this);

    if (returnVal == JFileChooser.APPROVE_OPTION) {
    File file = fc.getSelectedFile();
    //this is where a real application would open the file.
    log.append("Opening: " + file.getName() + "." + newline);
    } else {
    log.append("Open command cancelled by user." + newline);
    }
    }
    });

    //Create the save button
    ImageIcon saveIcon = new ImageIcon("images/save.gif");
    JButton saveButton = new JButton("Save a File...", saveIcon);
    saveButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    int returnVal = fc.showSaveDialog(FileChooserDemo.this);

    if (returnVal == JFileChooser.APPROVE_OPTION) {
    File file = fc.getSelectedFile();
    //this is where a real application would save the file.
    log.append("Saving: " + file.getName() + "." + newline);
    } else {
    log.append("Save command cancelled by user." + newline);
    }
    }
    });

    //For layout purposes, put the buttons in a separate panel
    JPanel buttonPanel = new JPanel();
    buttonPanel.add(openButton);
    buttonPanel.add(saveButton);

    //Explicitly set the focus sequence.
    openButton.setNextFocusableComponent(saveButton);
    saveButton.setNextFocusableComponent(openButton);

    //Add the buttons and the log to the frame
    Container contentPane = getContentPane();
    contentPane.add(buttonPanel, BorderLayout.NORTH);
    contentPane.add(logScrollPane, Bord

  • #2
    Hallo Jens,

    die Option FILES_ONLY sagt nur aus, dass keine Ordner ausgewählt werden dürfen. Das Wechseln der Ordner bleibt aber trotzdem erlaubt. Wenn Du das unterbinden willst, solltest Du überlegen die beiden Methoden<br><br>public void changeToParentDirectory(){} <br>und<br>public void setCurrentDirectory(File dir) {}<br><br> zu überschreiben. Die erste Methode kannst Du leer implementieren, dann kann man schon 'mal nicht mehr mit der Pfeil-Nach-Oben-Taste ins Vaterverzeichnis wechseln. Bei public void setCurrentDirectory(File dir) {} wird's schwieriger. Wenn Du die Methode leer überschreibst, kannst Du überhaupt keinene Ordner mehr zuweisen. Du mußt Dir also etwas überlegen, damit Du trotzdem noch die Möglichkeit hast, einen Ornder zu bestimmen.
    <br><br>
    Jürge

    Comment

    Working...
    X