Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [JAVA] Invocare metodo

  1. #1

    [JAVA] Invocare metodo

    Ciao ho un metodo che mi permetta attrvaerso un JFileChooser di salvare un file , ho messo un JOptionPane che verifica se il file esiste e mi chiede se voglio sovrascrivere il file, ovviamente se dico di no dovrebbe reinvocare lo stesso metodo
    che mi mostra il JFileChooser , qunidi è come se quel metodo
    dovrebbe invocare se stesso , il metodo è il seguente ma non saprei come modificarlo;


    public void save(JKeyArea txt){
    int sel;
    sel=JOptionPane.YES_OPTION;
    JFileChooser fileChooser = new JFileChooser();
    int dialog = fileChooser.showSaveDialog(new JFrame());
    fileChooser.setDialogTitle("Salva il file...");
    if(dialog == JFileChooser.APPROVE_OPTION) {
    try{
    File file = fileChooser.getSelectedFile();
    if(file.exists ()){
    sel = JOptionPane.showConfirmDialog(JEditorPadFrame.this ,
    "Sostituire il file ?","Conferma sostituzione", JOptionPane.YES_NO_CANCEL_OPTION,
    JOptionPane.WARNING_MESSAGE );
    } else sel= JOptionPane.YES_OPTION;
    if(sel ==JOptionPane.YES_OPTION){
    Writer out = new FileWriter(file);
    txt.write(out);
    JEditorPadFrame.this.setTitle(file.getName() +" - JEditorPad");
    }
    }
    catch(Exception e){}
    }
    }


    Spero di essere stato chiaro...
    Qualcuno può darmi una mano ??
    Grazie..

  2. #2
    Nn so bene cosa tu stia cercando di fare...
    Ma anke io avevo l'esigenza di fare il controllo se il file esiste...
    Mentre cercavo di rispondere ai vari post ho incotrato il tuo...
    Io ho risolto così!
    Ti pasto tt la classe:

    public class Salva {
    String url;
    void salvaProg(){

    try
    {
    JFileChooser fc= new JFileChooser();
    fc.resetChoosableFileFilters();
    int sel;
    sel=JOptionPane.YES_OPTION;

    fc.setDialogTitle("Salva il file...");
    //fc.setFileFilter(isf);
    fc.showOpenDialog(null);
    File file = fc.getSelectedFile();
    if(file.exists ()){
    sel = JOptionPane.showConfirmDialog(fc,
    "Sostituire il file ?","Conferma sostituzione", JOptionPane.YES_NO_CANCEL_OPTION,
    JOptionPane.WARNING_MESSAGE );
    }
    if(sel ==JOptionPane.YES_OPTION){
    url=fc.getSelectedFile().getAbsolutePath();
    System.out.println("url"+url);
    try{
    BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("scritto.xml") ) );
    Vector v = new Vector(); // Conterrà tutte le righe del file
    String linea = "";

    // Leggo tutto il file e lo memorizzo nel Vector
    while((linea = br.readLine()) != null) {
    v.add( linea );
    }
    br.close();

    // Ora riscrivo tutto, tranne l'ultima riga
    PrintStream ps = new PrintStream( new FileOutputStream(url) );
    for(int i=0; i<v.size(); i++) { // Il -1 indica di tralasciare l'ultima riga
    ps.println((String) v.elementAt(i));
    }
    ps.close();
    }
    catch(Exception e){
    System.out.println(e);
    }
    }

    if(sel ==JOptionPane.NO_OPTION){
    salvaProg();
    }
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    }

    }

    semplicemente ho rikiamato il metodo dentro se stesso:
    if(sel ==JOptionPane.NO_OPTION){
    salvaProg();
    }
    spero ke sia qsto il tuo problema anke se dubito xkè gestisci professionalmente i component

  3. #3
    Grazie lo stesso ma ho risolto in un'altro modo, ho racchiuso tutto all'interno di un ciclo while(true) e ed ho insrito un continue in base alla risposta ...se si sovrascive o meno il file ......

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.