import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.List; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.table.AbstractTableModel; public class importCSVDialog extends JDialog { private int ok; private Object result=null; public static final int ArrayListOfStringArray 1, ArrayListOfObjectArray 0; private JButton open new JButton(" Ouvrir "), cancel new JButton(" Annuler "), select = new JButton(" Sélectionnez le fichier à importer "); private JPanel container new JPanel(), buttons new JPanel(); private JFileChooser chooser = new JFileChooser(); private JModel model=null; public importCSVDialog(JFrame parent, String title, boolean modal){ super(parent,title,modal); this.setSize(550,270); this.setLocationRelativeTo(null); this.setResizable(true); this.setLayout(new BorderLayout()); this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); initComponent(); this.setContentPane(container); } public int showCSVDialog(){ this.setVisible(true); return ok; } public Object getResult() { return result; } private void initComponent(){ select.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { chooser.setDragEnabled(true); FileNameExtensionFilter filter1 = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif"); FileNameExtensionFilter filter2 = new FileNameExtensionFilter( "Fichier csv", "csv"); chooser.addChoosableFileFilter(filter1); chooser.addChoosableFileFilter(filter2); int file = chooser.showOpenDialog(null); File myFile = chooser.getSelectedFile(); if(file==0){ System.out.println("Parcourir ... "+file+" -> "+myFile.getPath()); initTable(myFile.getPath()); }else{ System.out.println("Importation annulée"); } } }); open.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ ok=0; result=model.getResult(); setVisible(false); } }); cancel.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ ok=1; setVisible(false); } }); buttons.add(open); buttons.add(cancel); container.add(select, BorderLayout.SOUTH); container.add(buttons, BorderLayout.NORTH); } public void initTable(String fich){ csvFile csv1 = new csvFile(fich); long startTime = System.currentTimeMillis(); ArrayList<Object> out = csv1.getResult(csvFile.ArrayListOfObjectArray); long time = System.currentTimeMillis()-startTime; Object tab = new Object; int i=0; for(Object obj: out){ tab=obj; i++; } Object tabs = {{"col1", "col2", "col3", "col4"}, {"item1", "item2", "item3", "item4"} , {"item1", "item2", "item3", "item4"}}; String title = {"a", "b", "c", "d", "e", "F"}; i=0; for (Object col: tab){ int u=0; for(Object text: col) System.out.print(i+"-"+u+" "+text+"\t");++u; System.out.print("\n"); i++; } model = new JModel(tab, title); JTable tableau = new JTable(model); this.getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER); writeCSV wc = new writeCSV(tab); String wcr = wc.getResult(); System.out.println(wcr); repaint(); // C'est là le pb justement !! System.out.println("affichage terminé en "+time+" milli-secondes "); } class JModel extends AbstractTableModel{ private Object data; private String title; /** * Constructeur * @param data * @param title */ public JModel(Object data, String title){ this.data = data; this.title = title; } public boolean isCellEditable(int row, int col){ return true; } /** * Retourne le nombre de colonnes */ public int getColumnCount() { return this.title.length; } /** * Retourne le nombre de lignes */ public int getRowCount() { return this.data.length; } /** * Retourne la valeur à l'emplacement spécifié */ public Object getValueAt(int row, int col){ System.out.println("x -> "+row+" y -> "+col); try{ return this.data; }catch(IndexOutOfBoundsException e){ System.out.println("Excpetion pour x ="+row+" et y = "+ col+" Erreur corrigée. "); return (Object)""; } } public Object getResult(){ return this.data; } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJTable tableau = new JTable(model); this.getContentPane().add(new JScrollPane(tableau), BorderLayout.CENTER);