Non so se dal titolo si capisce quello che vorrei ottenere, in ogni caso ve lo spiego ora.
In un mio progetto di prova, sempre per un'altro mio progetto, vorrei poter realizzare un JFileChooser, che prende di default in nome del file cosi formato: nuovo + estensione filtro selezionato di default, ora io, vorrei che questo nome lo modificasse ogni volta, e lo cambiasse, con lo stesso nome con la rimozione dell'estensione, sostituita dall'estensione nuova ( quella appena selezionata dall'utente ). non so se fin qui sono stato chiaro, ma cercando di risolvere il mio problema cercando la soluzione su internet sono venuto a scrivere questo codice:
Ovviamente non è completo, anche perché mi sono accordo, come potete anche vedere voi, che la variabile selectedFile ti tipo File all'interno del metodo addPropertyChangeListener(), del JFileChooser ( per intercettare il cambio, da parte dell'utente, delle sue proprietà ) mi ritorna un valore nullo, uguale a null, ecco, questo è il mio unico problema, non capisco come mai mi ritorna un valore nullo e come risolvere il problema.
In un mio progetto di prova, sempre per un'altro mio progetto, vorrei poter realizzare un JFileChooser, che prende di default in nome del file cosi formato: nuovo + estensione filtro selezionato di default, ora io, vorrei che questo nome lo modificasse ogni volta, e lo cambiasse, con lo stesso nome con la rimozione dell'estensione, sostituita dall'estensione nuova ( quella appena selezionata dall'utente ). non so se fin qui sono stato chiaro, ma cercando di risolvere il mio problema cercando la soluzione su internet sono venuto a scrivere questo codice:
Codice:
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
public class prChooser
{
public static void main(String[] args)
{
JFrame frm = new JFrame();
JPanel mP = new JPanel(new GridLayout(2, 1));
JTextPane tP = new JTextPane();
JButton bS = new JButton(" Salva documento ");
frm.setSize(200, 200);
bS.addActionListener(new EM());
mP.add(bS);
mP.add(tP);
frm.add(mP);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private static class EM implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
String cmd = ae.getActionCommand();
if (cmd.equals(" Salva documento ")) {
JFileChooser chooser = new JFileChooser();
chooser.removeChoosableFileFilter(chooser.getFileFilter());
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Documento HTML ( *.html )", "html"));
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Script PHP ( *.php )", "php"));
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Script ASP ( *.asp )", "asp"));
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Script JavaScript ( *.js )", "js"));
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Documento XML ( *.xml )", "xml"));
chooser.addChoosableFileFilter(new FileNameExtensionFilter("Documento di testo ( *.txt )", "txt"));
FileNameExtensionFilter extensionFile = (FileNameExtensionFilter) chooser.getFileFilter();
chooser.setSelectedFile(new File("nuovo." + extensionFile.getExtensions()[0]));
chooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent pcEvt)
{
JFileChooser ch = (JFileChooser) pcEvt.getSource();
Object objCh = pcEvt.getNewValue();
if (objCh instanceof FileNameExtensionFilter) {
FileNameExtensionFilter newFilter = (FileNameExtensionFilter) objCh;
String newExtension = newFilter.getExtensions()[0];
File selectedFile = ch.getSelectedFile();
String nameFile = selectedFile.toString().substring(0, selectedFile.toString().lastIndexOf("."));
}
}
});
if ((int)chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
// operazione per il salvataggio del file
}
}
}
}
}
Ovviamente non è completo, anche perché mi sono accordo, come potete anche vedere voi, che la variabile selectedFile ti tipo File all'interno del metodo addPropertyChangeListener(), del JFileChooser ( per intercettare il cambio, da parte dell'utente, delle sue proprietà ) mi ritorna un valore nullo, uguale a null, ecco, questo è il mio unico problema, non capisco come mai mi ritorna un valore nullo e come risolvere il problema.