cs_harleen
Messages postés22Date d'inscriptionlundi 10 novembre 2008StatutMembreDernière intervention20 juillet 2009
-
9 juil. 2009 à 11:54
cs_harleen
Messages postés22Date d'inscriptionlundi 10 novembre 2008StatutMembreDernière intervention20 juillet 2009
-
9 juil. 2009 à 15:19
Bonjour à tous,
Après recherche google et forum infructueuse, je fais appel à votre aide...
Je travaille actuellement sur une appli de conversion qui a deux boutons :
par exemple comme pour les convertisseurs : €->francs et francs ->€
Je crée un listener par bouton, avec pour chaque listener la méthode actionPerformed associée au mécanisme de traduction.
Je dois sélectionner un fichier à traduire, puis chercher un endroit où
créer mon fichier traduit à l'aide du bouton de traduction.
Cela marche pour le moment, seulement dans les cas où je crée les fichiers où j'ai tous les droits.
Or, dans le cas où je n'ai pas le droit de créer (répertoires systèmes
par exemple), j'ai un ensemble de lignes d'erreurs avec le message
d'exception java.io.FileNotFoundException.(Accès refusé).
Or, j'ai tenté de mettre le bloc try/catch suivant dans ma méthode
De même, en testant avec la clause throws, j'ai eu un message comme
quoi la méthode actionPerformed n'était pas compatible avec les
exceptions.J'ai alors crée une méthode intermédiaire appelée par
actionPerformed...sans succès...
Si vous avec quelconque piste ou indication à ce sujet, je suis à votre écoute,
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 9 juil. 2009 à 12:46
Salut,
Le fait que tu fasse un try catch ne t'enlèvera pas l'erreur, c'est juste à toi de la traîter correctement : si tu n'as pas le droit d'accès en écriture sur un dossier, ce n'est pas grâce au try catch que tu arriveras miraculeusement à créer ton dossier dedans !
Quand à "j'ai tenté de mettre le bloc try/catch suivant dans ma méthode sans succès.", je vois pas en quoi tu n'as pas de succès : tu fais un printStackTrace, donc il t'affiche la stack trace dans la console lorsqu'il y a une exception, c'est normal !
cs_harleen
Messages postés22Date d'inscriptionlundi 10 novembre 2008StatutMembreDernière intervention20 juillet 2009 9 juil. 2009 à 13:52
Salut à vous et merci de m'avoir répondu,
Pour répondre à Darksidious, je sais que je n'ai aps accès en écriture et justement, je n'espérais pas que j'arriverai "miraculeusement à créer mon dossier dedans", mais j'ai fait un :
System.out.println("message_erreur"); dans le catch et celui-ci ne s'affiche pas...
Evidemment, je sais que l'utilisateur ne pourra créer ce qu'il veut où il veut, mais je voulais justement afficher un message d'erreur pour l'informer qu'il ne pouvait pas écrire à cet endroit.
Comment rendre possible cet affichage sans avoir les nombreuses lignes rouges d'erreur que j'ai actuellement et qui informent justement que je ne peux pas écrire à cet endroit?
Harleen
cs_harleen
Messages postés22Date d'inscriptionlundi 10 novembre 2008StatutMembreDernière intervention20 juillet 2009 9 juil. 2009 à 14:42
salut,
Toujours pas...j'ai enlevé le e.printStackTrace et remplacé par un System.out.println("");, mais j'ai toujours la liste de lignes d'erreurs qui sd'affichent dans ma console...
Harleen
cs_harleen
Messages postés22Date d'inscriptionlundi 10 novembre 2008StatutMembreDernière intervention20 juillet 2009 9 juil. 2009 à 14:46
Si cela peut aider à mieux voir le problème, voici le code de ma classe :
class BoutonTradSimpleListener implements ActionListener{
public void actionPerformed(ActionEvent arg0){
BoutonSimpleService();
}
private void BoutonSimpleService(){
//fichier d'entrée et de sortie en récupérant les contenus des zones de txt
inputFile = new File(txtlocalPath.getText());
outputFile = new File(txtSortie.getText());
//récupérer le contenu de la textBox et traduire
// System.setProperty("javax.xml.transform.TransformerFactory",
//"net.sf.saxon.TransformerFactoryImpl");
//on crée une fabrique de transformeurs
TransformerFactory factory = TransformerFactory.newInstance();
//fichier xsl de transformation
File fxsl = new File("transfo.xsl");
//fichier xml source de type source
Source xmlSource = new StreamSource(inputFile);
//nom du fichier de sortie de type Result :
//on choisit le constructeur avec File
Result sortie = new StreamResult(outputFile);
//transformer
Transformer transformer;
try {
//on récupère un transformeur à partir d'une fabrique de transformeurs
transformer = factory.newTransformer(new StreamSource(fxsl));
/*Utilisation d'un parser DOM ou SAX sans DTD ou xml schema pour la validation,
* s'il ya une erreur de parsing alors le fichier XML n'est pas bien formé càd NON XML.
*/
DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
DocumentBuilder constructeur = fabrique.newDocumentBuilder();
// lecture du contenu du fichier d'entrée XML avec DOM
File xml = new File(inputFile.getName());
Document document = constructeur.parse(xml);
//transformation en prenant en paramètre le fichier xml source et fait le fichier xml de sortie
transformer.transform(xmlSource, sortie );
//message informant que la traduction a bien été faite
message_erreur.setText("Traduction simple effectuée");
message_erreur.setForeground(Color.green);