Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di sky_451
    Registrato dal
    Apr 2003
    Messaggi
    194

    [JAVA] Problema visualizzazione JFileChooser in successione

    Salve a tutti, vi posto subito la parte di codice relativa al problema, è una parte del main:
    codice:
    JFileChooser fileChooser = new JFileChooser( (new File(".")).getAbsolutePath() );
        	fileChooser.setDialogTitle("Selezionare il file html con i nani");
        	HtmlFilter filtroFileHtml = new HtmlFilter();
        	fileChooser.addChoosableFileFilter(filtroFileHtml);
        	int response = fileChooser.showOpenDialog(null);
        	File f = null;
        	if(response == JFileChooser.APPROVE_OPTION) {
    			f = fileChooser.getSelectedFile();
    			if(f != null){
    			    try{
    			    	stringaNaniEstratti = grep(f);
    			    	if(stringaNaniEstratti != "")
    			    		JOptionPane.showMessageDialog(null, "Estrazione avvenuta.");
    			    	else{
    			    		JOptionPane.showMessageDialog(null, "Estrazione fallita.", "Attenzione!", JOptionPane.WARNING_MESSAGE);
    			    		System.exit(0);
    			    	}
    				}catch (IOException x){
    					System.err.println(f + ": " + x);
    				}
    			}
        	}
        	else if(response == JFileChooser.CANCEL_OPTION){
        		System.exit(0);
        	}
        	
        	fileChooser.setDialogTitle("Inserire il nome del file pdf che conterrà i nani salvati");
        	fileChooser.removeChoosableFileFilter(filtroFileHtml);
        	fileChooser.addChoosableFileFilter(new PdfFilter());
        	fileChooser.setSelectedFile(new File(Config.PDF_NAME));
        	response = fileChooser.showSaveDialog(null);
        	f = null;
        	if(response == JFileChooser.APPROVE_OPTION) {
        		f = fileChooser.getSelectedFile();
        		if(f != null){
        			if(f.exists()){
        				Object[] options = {"Sì",
        	                    "No"};
    			    	int n = JOptionPane.showOptionDialog(null,
    			    	    "Attenzione! Il file è già esistente," +
    			    	    " vuoi sovrascriverlo?",
    			    	    "File esistente",
    			    	    JOptionPane.YES_NO_CANCEL_OPTION,
    			    	    JOptionPane.WARNING_MESSAGE,
    			    	    null,
    			    	    options,
    			    	    options[1]);
    			    	if(n == 0)
    			    		writePDF(stringaNaniEstratti, f.getAbsolutePath());
        			}
        			else
        				writePDF(stringaNaniEstratti, f.getAbsolutePath());
        		}
        	}
        	else if(response==JFileChooser.CANCEL_OPTION){
        		System.exit(0);
        	}
    Sto lavorando con eclipse e lanciando il programma da lì non ho nessun problema, nel senso che i due filechooser vengono visualizzati correttamente uno dopo l'altro. Ma quando esporto in jar mi si presenta il seguente problema: compare correttamente il primo jfilechooser, compare il dialog di avvenuta estrazione, ma dopo questo si blocca tutto. Il secondo filechooser non compare e sono costretto ad intervenire sul task manager ed interrompere il processo javaw.exe. La cosa strana è che a volte tutto funziona correttamente, poi riprovo e niente.

    Grazie per l'attenzione.
    "There is no dark side of the moon really. Matter of fact it’s all dark."

  2. #2
    Utente di HTML.it L'avatar di sky_451
    Registrato dal
    Apr 2003
    Messaggi
    194
    Ho ripulito il codice da tutte le istruzioni inutili e lasciato solo la parte grafica, per vedere se cambiava qualcosa. Ecco il codice:
    codice:
    JFileChooser fileChooser = new JFileChooser( (new File(".")).getAbsolutePath() );
        	fileChooser.setDialogTitle("Selezionare il file html con i nani");
        	HtmlFilter filtroFileHtml = new HtmlFilter();
        	fileChooser.addChoosableFileFilter(filtroFileHtml);
        	int response = fileChooser.showOpenDialog(null);
        	
        	File f = null;
        	if(response == JFileChooser.APPROVE_OPTION) {
    			f = fileChooser.getSelectedFile();
    			if(f != null){
    				JOptionPane.showMessageDialog(null, "ok");
    			}
    		}
        	else if(response == JFileChooser.CANCEL_OPTION){
        		System.exit(0);
        	}
        	
        	fileChooser.setDialogTitle("Inserire il nome del file pdf che conterrà i nani salvati");
        	fileChooser.removeChoosableFileFilter(filtroFileHtml);
        	fileChooser.addChoosableFileFilter(new PdfFilter());
        	fileChooser.setSelectedFile(new File(Config.PDF_NAME));
        	response = fileChooser.showSaveDialog(null);
        	f = null;
        	if(response == JFileChooser.APPROVE_OPTION) {
        		f = fileChooser.getSelectedFile();
        		if(f != null){
        			if(f.exists()){
        				Object[] options = {"Sì",
        	                    "No"};
    			    	int n = JOptionPane.showOptionDialog(null,
    			    	    "Attenzione! Il file è già esistente," +
    			    	    " vuoi sovrascriverlo?",
    			    	    "File esistente",
    			    	    JOptionPane.YES_NO_CANCEL_OPTION,
    			    	    JOptionPane.WARNING_MESSAGE,
    			    	    null,
    			    	    options,
    			    	    options[1]);
    			    	if(n == 0)
    			    		JOptionPane.showMessageDialog(null, "ok");
        			}
        			else
        				JOptionPane.showMessageDialog(null, "ok");
        		}
        	}
        	else if(response==JFileChooser.CANCEL_OPTION){
        		System.exit(0);
        	}
        	
        	System.exit(0);
    In eclipse nessun problema. Esporto il jar, funziona la prima volta. Avvio una seconda volta e dopo il primo dialog di ok non si apre il secondo filechooser e devo intervenire sul task manager per terminare. Poi magari riprovo dopo un po' e rifunziona; insomma fa un po' come gli pare. Mi pare che non abbia senso la cosa...
    "There is no dark side of the moon really. Matter of fact it’s all dark."

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 © 2025 vBulletin Solutions, Inc. All rights reserved.