Probléme d'inclusion du composant jfilechooser dans jtable

overmarsjdaini Messages postés 3 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 31 juillet 2008 - 31 juil. 2008 à 11:42
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 - 2 août 2008 à 13:17
salut,
s'il vous plait j'ai un probléme d'inclure le composant jfilechooser dans un colonne de jtable afin d'inserer des images dans un champ d'une table de ma base de données MySQL ,si quelqu'un a une solution sa sera avec plaisir de me la proposer ,car le projet doit etre livré dans les plus breve délai et merci d'avance

overmars

3 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
31 juil. 2008 à 12:10
Bonjour
Peux tu être plus clair "j'ai un probléme d'inclure le composant jfilechooser" ?
0
mouzart Messages postés 161 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 6 novembre 2008 4
31 juil. 2008 à 17:24
salut,

Inserer un JFilechooser (qui est dans un JDialog) dans autre container me semble impossible.
0
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
2 août 2008 à 13:17
Tu peus essayer ceci:

/*
 * TableWithFilecooser.java
 */
import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableWithFilecooser extends JFrame {
    private JTable table;
    private String COL1 = "Chemin de l'image";
    private String COL2 = "Personnel";
    public TableWithFilecooser() {
        super("TableWithCheckbox");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
        table = new JTable();
        table.setModel(new DefaultTableModel(
            new Object [][] {
                {"1", new Boolean(false)},
                {"2", new Boolean(false)},
                {"3", new Boolean(false)},
                {"4", new Boolean(false)}
            },
            new String [] {
                COL1, COL2
            }
        ) {
            Class[] types = new Class [] {
                String.class, Boolean.class
            };

            public Class getColumnClass(final int columnIndex) {
                return types [columnIndex];
            }
        });
        getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
        table.getColumn(COL1).setCellEditor(new FilechooserEditor());
    }
    public static void main(final String args[]) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TableWithFilecooser().setVisible(true);
            }
        });
    }
  private class FilechooserEditor extends DefaultCellEditor {
        private JFileChooser fileChooser;
        private JTextField tf;
        private String value;
        public FilechooserEditor() {
            super(new JTextField());
            tf = (JTextField) getComponent();
            fileChooser = new JFileChooser();
        }
        @Override public Component getTableCellEditorComponent(final JTable table, final Object value,
        final boolean isSelected, final int row, final int column) {
            switch (fileChooser.showOpenDialog(null)) {
                case JFileChooser.APPROVE_OPTION:
                    final File file = fileChooser.getSelectedFile();
                    System.out.println(SwingUtilities.isEventDispatchThread());
                    tf.setText(file.getAbsolutePath());
                    break;
                case JFileChooser.CANCEL_OPTION:
                    break;
            }
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    stopCellEditing();
                }
            });
            return tf;
        }
        @Override public Object getCellEditorValue() {
            value = tf.getText();
            return value;
        }
    }    
}
0
Rejoignez-nous