SaveDialog - Überschreiben Warnung einbauen

Status
Nicht offen für weitere Antworten.
Hallo zusammen,

wie bekomm ich denn in mein JFilechooser als SAVEDIALOG am einfachsten nen Warnung rein, die er mir zeigt wenn die geählte Datei schon vorhanden ist und ich dann brav klicken kann "ja überschreiben"? :?


Hier das Stück Code dazu

Code:
private void getSaveDialogg ( )
   {

      final JFileChooser fc = new JFileChooser ( );
      fc.setFileFilter (filter);
      fc.approveSelection ( );

      int state = fc.showSaveDialog (null);

      if (state == JFileChooser.APPROVE_OPTION)
      {
         if (fc.getSelectedFile ( ).getName ( ).endsWith (".xml"))
         {
            clusterfile.save (clusterMap, fc.getSelectedFile ( ).getAbsolutePath ( ));
         }
         else
         {
            clusterfile.save (clusterMap, fc.getSelectedFile ( ).getAbsolutePath ( ) + filter.ending ( ));
         }
      }
      else
      {

      }

   }

greetz
Kekskennzeichen
 
S

SlaterB

Gast
ob du den Dialog bearbeiten kannst weiß ich nicht,
aber du erhälst ja eine Datei die du selber prüfen kannst + neuen Dialog einblenden,
wenn dann das ÜBerschreiben abgeleht wird, könntest du wieder den JFileChoser anzeigen,
ob an genau der gleichen Position, das weiß ich nicht,
zu irgendwas muss aber
JFileChooser(File currentDirectory)
gut sein ;)
 

Wolfgang Lenhard

Bekanntes Mitglied
Hi kekskennzeichen,
probiers mal damit:

Code:
/**
 * File:     FileSaveDialog.java
 * Package:  de.itbayern.summa.client.context.tools
 * 
 * Author:   Wolfgang Lenhard
 * 
 * Date:     11.01.2007
 * Revision: $Id: FileSaveDialog.java,v 1.2 2007/02/23 13:44:28 
 */
package de.psychometrica.tools.file;

import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 * Displays a file chooser which asks if file should be overwritten
 * 
 * @author Wolfgang Lenhard
 * @version $Revision: 1.2 $
 * @since 1.5
 */
public class FileDialog {

	public static String showFileSaveDialog(JFrame parent, String filename,
			FileNameExtensionFilter filter) {

		if (filename.equals(""))
			filename = javax.swing.filechooser.FileSystemView
					.getFileSystemView().getDefaultDirectory().toString();

		File f = new File(filename);
		JFileChooser jfc = new JFileChooser();
		jfc.setFileFilter(filter);
		jfc.setSelectedFile(f);

		if (f.exists())
			jfc.setSelectedFile(f);
		int ret = jfc.showSaveDialog(parent);
		if (ret == JFileChooser.APPROVE_OPTION) {
			File sel = jfc.getSelectedFile();
			if (isWriteable(parent, sel))
				return jfc.getSelectedFile().toString();
			else
				showFileSaveDialog(parent, sel.getName(), filter);
		}
		return "";

	}

	public static String showFileOpenDialog(JFrame parent, String filename,
			FileNameExtensionFilter filter) {

		if (filename.equals(""))
			filename = javax.swing.filechooser.FileSystemView
					.getFileSystemView().getDefaultDirectory().toString();

		File f = new File(filename);
		JFileChooser jfc = new JFileChooser();
		jfc.setFileFilter(filter);
		jfc.setSelectedFile(f);

		if (f.exists())
			jfc.setSelectedFile(f);
		int ret = jfc.showOpenDialog(parent);
		if (ret == JFileChooser.APPROVE_OPTION) {
			return jfc.getSelectedFile().toString();
		}
		return "";

	}

	private static boolean isWriteable(JFrame parent, File f) {
		if (f.exists())
			return setQuestionDialog(
					parent,
					"Es existiert bereits eine Datei mit diesem Namen. Soll die bestehende Datei überschrieben werden?");
		return true;

	}

	public static boolean setQuestionDialog(JFrame parent, String s) {
		Object[] o = new Object[] { "Ja", "Nein" };
		int res = JOptionPane.showOptionDialog(parent, s, "",
				JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null,
				o, "Yes");
		if (res == JOptionPane.NO_OPTION)
			return false;
		return true;

	}
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben