Convertir une JTable ou mieux un Graphics2D en PNG ou JPEG
crjohnson
Messages postés6Date d'inscriptionlundi 17 novembre 2008StatutMembreDernière intervention12 juin 2009
-
12 juin 2009 à 20:20
crjohnson
Messages postés6Date d'inscriptionlundi 17 novembre 2008StatutMembreDernière intervention12 juin 2009
-
12 juin 2009 à 21:52
Salut les frères,
J'essaye d'enregistrer une JTable dans un fichier image (".png" de préférence car libre). J'ai tenté de faire cet enregistrement en la convertissant en Graphics2D mais sans succès. Je préfèrerais qu'on utilise le Graphics2D car au moins il contiendra la coloration de la table alors que la JTable en elle-même contient pas la map de couleurs.
Cet enregistrement va servir à être envoyé en pièce attachée à un e-mail avec l'A.P.I. "JavaMail", mais faudrait que j'arrive à le générer ce fichier image.
Alors j'ai essayé plein de trucs trouvés sur Internet avec "BufferedImage" et "ImageIO.write()" et la conclusion que j'en ai tirée c'est que ça fonctionne bien en faisant des "drawLine()", des "drawOval()" et compagnie mais que pour des objets comme JTable ou Graphics2D ça risque d'être plus complexe à mettre en oeuvre.
Je vous lache la classe dans laquelle je dois faire cet enregistrement :
class Fenetre_Email extends JFrame implements MouseListener
{
private static final long serialVersionUID = 1L;
private Fenetre_Email THIS = this;
private JPanel panneau_north = new JPanel();
private JPanel panneau_label_email = new JPanel();
private JLabel label_email = new JLabel("Balance une adresse : ");
private JPanel panneau_champ_email = new JPanel();
private JFormattedTextField champ_email = new JFormattedTextField();
private JPanel panneau_bouton_ajouter = new JPanel();
private JButton bouton_ajouter = new JButton("Ajoute à la liste");
private JPanel panneau_south = new JPanel();
private JPanel panneau_bouton_envoyer = new JPanel();
private JButton bouton_envoyer = new JButton("Foutez le camp !");
private JPanel panneau_center = new JPanel();
private JPanel[] panneaux_emails = new JPanel[40];
private JLabel[] labels_emails = new JLabel[40];
private JButton[] boutons_editer = new JButton[40];
bouton_ajouter.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
labels_emails[i] = new JLabel(champ_email.getText());
boutons_editer[i] = new JButton("Edit");
panneaux_emails[i] = new JPanel();
public void mouseClicked (MouseEvent event){}
public void mouseEntered (MouseEvent event){}
public void mouseExited (MouseEvent event){}
public void mousePressed (MouseEvent event){}
public void mouseReleased(MouseEvent event)
{
for(k=0 ; k<labels_emails.length ; k++)
{
if(event.getSource().equals(boutons_editer[k]))
{
String adresse_modifiee = (String) JOptionPane.showInputDialog(null, "Change-moi ça :", "Edit", JOptionPane.OK_CANCEL_OPTION, new ImageIcon("img/edit.png"), null, null);
crjohnson
Messages postés6Date d'inscriptionlundi 17 novembre 2008StatutMembreDernière intervention12 juin 2009 12 juin 2009 à 21:52
Cousin j'ai cherché un peu partout mais y a tellement de fichiers sources que je trouve pas celui qui contient cette méthode. Tu pourrais m'expliquer comment on fait s'il te plaît ? Merci.