Salve ragazzi ho creato una frame che utilizza un jfileChooser. Non riesco a fare in modo che mi salvi solo i file. dat. Se in salva in nome file scrivo un file e un estensione diversa da dat ad esempio txt me la salva , non riesco a capire come fare in modo che non mi salvi altre estensioni se non quella specificata , potete spiegarmi perchè?
codice:
public class Esempio10
extends JFrame {
JOptionPane msg=new JOptionPane();
JFileChooser fileChooser=new JFileChooser();
JTextArea textArea=new JTextArea(20,60);
public Esempio10() {
super("Esempio JTextArea, Menu, JOptionPane e JFileChooser"); //crea una JFrame con titolo
JMenuBar menuBar=new JMenuBar();
JMenu fileMenu=new JMenu("File");
JMenuItem apri=new JMenuItem("Apri");
fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.addChoosableFileFilter (new FileNameExtensionFilter ("File dat", "dat"));
//fileChooser.addChoosableFileFilter (new ExtensionFileFilter ("dat", "Tutti i file con estensione .dat"));
apri.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION) {
try {
FileReader f = new FileReader(fileChooser.getSelectedFile());
boolean fine=false;
while(!fine) {
try{
int c=f.read();
if (c==-1) fine=true;
else textArea.append((char)c+"");
}
catch (IOException ioex) {
}
}
}
catch (FileNotFoundException fnf) {}
}
}
});
JMenuItem salva=new JMenuItem("Salva");
salva.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (fileChooser.showSaveDialog(null)==JFileChooser.APPROVE_OPTION) {
try {
FileWriter f = new FileWriter(fileChooser.getSelectedFile());
String s=textArea.getText();
f.write(s);
f.flush();
f.close();
}
catch (IOException ioe) {}
}
}
});
JMenuItem chiudi=new JMenuItem("Chiudi");
chiudi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (msg.showConfirmDialog(null,"Sei sicuro di voler uscire?", "Conferma",
JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
System.exit(0);
}
});
fileMenu.add(apri);
fileMenu.add(salva);
fileMenu.addSeparator();
fileMenu.add(chiudi);
menuBar.add(fileMenu);
JMenu aboutMenu=new JMenu("Informazioni");
aboutMenu.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
JOptionPane msg= new JOptionPane();
msg.showMessageDialog(null, "Prova JTextArea, JMenu, JOptionPane e JFileChooser", "Informazioni", JOptionPane.INFORMATION_MESSAGE);
}
});
menuBar.add(aboutMenu);
this.setJMenuBar(menuBar);
setLocation(200, 100); //imposta la posizione del vertice in alto a sinistra
addWindowListener(new ExitListener()); //aggiunge un listener per la chiusura
Container container=getContentPane();
container.setLayout(new GridLayout(1,1));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
container.add(textArea);
container.add(new JScrollPane(textArea));
pack(); //"impacchetta" il frame, cioè fa in modo che assuma dimensione tale
//da contenere esattamente ciò che è contenuto nella finestra
setVisible(true);//mostra la finestra. Equivale a setVisible(true);
}
public static void main(String[] args) {
/* try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {}*/
Esempio10 es10= new Esempio10();
}
}