import java.awt.Component;
import java.awt.Container;
import java.awt.EventQueue;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.filechooser.FileFilter;
public class UntouchFile {
static void zulageausführung() {
try {
JFileChooser fc = new JFileChooser("");
fc.setDialogTitle("Datei speichern");
// fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setSelectedFile(new File("can´t touch this"));
disableTextComponent(fc, true);
fc.setFileFilter(new FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".pdf")
|| f.isDirectory();
}
public String getDescription() {
return "Textdatei(*.pdf)";
}
});
if (fc.showDialog(null, "Speichern") == JFileChooser.CANCEL_OPTION) {
System.out.println("ich führe was aus");
return;
} else {
// ZulagePDF.pdffile = fc.getSelectedFile();
// return f.getAbsoluteFile().toString();
System.out.println("ich führe was aus");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* wird benötigt um in zulageausführung auf Textfeld- Komponenten des
* JFilechossers zuzugreifen
*/
private static void disableTextComponent(Container parent, boolean hide) {
Component[] c = parent.getComponents();
for (int j = 0; j < c.length; j++) {
if (unpack(c[j]).equals("WindowsFileChooserUI$4")) {
System.out.println(unpack(c[j]));
if (hide)
c[j].setEnabled(false);
}
if (((Container) c[j]).getComponentCount() > 0) {
disableTextComponent((Container) c[j], hide);
}
}
}
/**
* wird für disableTextComponent,zulageausführung benötigt
*/
//
private static String unpack(Component c) {
String s = c.getClass().getName();
int dot = s.lastIndexOf(".");
if (dot != -1)
s = s.substring(dot + 1);
return s;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// zulageausführung();
/**
* look and feel
*/
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
zulageausführung();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}