Imprimer en java
enauoder
Messages postés
17
Statut
Membre
-
enauoder Messages postés 17 Statut Membre -
enauoder Messages postés 17 Statut Membre -
Bonjour,
je voudrais imprimer le contenu d'une liste en java, quelqu'un a des idées?
Merci d'avance.
je voudrais imprimer le contenu d'une liste en java, quelqu'un a des idées?
Merci d'avance.
1 réponse
-
Imprimer... Sur papier ?
Tu peux enregistrer ta liste dans un fichier puis l'imprimer avec Desktop.print(File)
La confiance n'exclut pas le contrôle-
Exemple complet d'implémentation avec gestion des exceptions...
import java.awt.Desktop; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.Collection; public class MiseEnPage { /** * Imprime une collection d'éléments sur l'imprimante par défaut. * @param <E> le type des éléments de la collection * @param coll la collection d'éléments à imprimer * @param err un flux pour afficher les messages d'erreur * @return true si la demande d'impression est réussie, false sinon */ public static <E> boolean print(Collection<E> coll, PrintStream err) { if (!Desktop.isDesktopSupported()) { display(err, "Desktop not supported"); return false; } if (!Desktop.getDesktop().isSupported(Desktop.Action.PRINT)) { display(err,"Desktop.PRINT not supported"); return false; } File txt; try { txt = File.createTempFile("ToPrint-",".txt"); txt.deleteOnExit(); } catch (IOException e) { display(err,e.getMessage()); return false; } FileOutputStream out; try { out = new FileOutputStream(txt); } catch (FileNotFoundException e) { display(err,e.getMessage()); return false; } try { for (E e : coll) out.write((e.toString()+(char)Character.LINE_SEPARATOR ).getBytes()); out.close(); } catch (IOException e1) { display(err,e1.getMessage()); try { out.close(); } catch (IOException e2) { } return false; } try { Desktop.getDesktop().print(txt); } catch (IOException e) { display(err,e.getMessage()); return false; } return true; } /** * Imprime une collection d'éléments sur l'imprimante par défaut. * @param <E> le type des éléments de la collection * @param coll la collection d'éléments à imprimer * @return true si la demande d'impression est réussie, false sinon */ public static <E> boolean print(Collection<E> coll) { return print(coll,null); } /** * Affiche un message sur un flux. * @param ps le flux d'affichage * @param msg le message à afficher */ private static void display(PrintStream ps,String msg) { if (ps!=null && msg!=null) ps.println(msg); } /** * Imprime la liste des factorielles. */ public static void main(String...args) { // Liste des factorielles Collection<String> coll = new java.util.LinkedList<String>(); for (long n=0, fact=1; fact>0; n++, fact*=n) coll.add(n+"! = "+fact); // Imprime la liste if (print(coll,System.err)) System.out.println("Impression en cours..."); } } -
-