IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Importer une liste dans une JTable avec SWING


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Importer une liste dans une JTable avec SWING
    Bonjour

    Débutant en Java j'aimerais savoir comment importer une liste de noms que j'ai sur mon ordinateur dans une JTable. Pour cela je m'inspire de ce que nous avons fait en cours :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    package component;
     
    import java.awt.Point;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
     
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
     
    public class MyJTable extends JFrame {
    	private JScrollPane scroll;
    	private JTable table;
     
    	public MyJTable() {
    		setBounds(300, 300, 300, 300);
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    		table = new JTable(new MyTableModel());
    		// table.getTableHeader().setReorderingAllowed(false);
    		table.setAutoCreateRowSorter(true);
    		scroll = new JScrollPane(table);
    		table.addMouseListener(new MyTableMouseAdapter());
    		add(scroll);
    		setVisible(true);
    	}
     
    	public static void main(String[] args) {
    		new MyJTable();
    	}
     
    	private class MyTableMouseAdapter extends MouseAdapter {
    		@Override
    		public void mouseClicked(MouseEvent e) {
    			Point point = e.getPoint();
    			int column = table.columnAtPoint(point);
    			int modelColumn = table.convertColumnIndexToModel(column);
     
    			int row = table.rowAtPoint(point);
    			int modelRow = table.convertRowIndexToModel(row);
    			System.out.println(table.getModel().getValueAt(modelRow,
    					modelColumn));
    		}
    	}
     
    }
     
     
    Et la deuxième fenètre :
     
     
    package component;
     
    import javax.swing.table.AbstractTableModel;
     
    public class MyTableModel extends AbstractTableModel{
    	String[]headers = {"Nom", "Prénom", "Age"};
    	Object[][]values = {
    			{"Sparrow", "Jack", 45},
    			{"Jones", "Indiana", 69},
    			{"Kirk", "James T.", 75},
    			{"Skywalker", "Leia", 72},
    			{"Vador", "DarK", 1234},
     
    	};
     
    	@Override
    	public int getRowCount() {
    		return values.length;
    	}
     
    	@Override
    	public int getColumnCount() {
    		return headers.length;
    	}
     
    	@Override
    	public Object getValueAt(int rowIndex, int columnIndex) {
    		return values[rowIndex][columnIndex];
    	}
     
    	@Override
    	public String getColumnName(int column) {
    		return headers[column];
    	}
     
    	@Override
    	public Class<?> getColumnClass(int columnIndex) {
    		return values[0][columnIndex].getClass();
    	}
     
     
     
    }
    J'aimerais remplacer les noms cités ci dessus par ma liste...???
    Merci pour vos réponses

  2. #2
    Membre éclairé
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 471
    Points : 831
    Points
    831
    Par défaut
    Bonjour samibipbip

    Juste une remarque pour commencer, met ton code entre des balises [code] comme dans l''exemple ci dessous. Se sera plus facile pour répondre (et avec de l'indentation, ce serait parfait).


    Dans ta classe MyTableModel rajoute cette méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      public void setValues(Object[][] newValues) {
        values= newValues;
      }
    puis dans ton code tu peux alors faire ceci à la fin du constructeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public MyJTable() {
        setBounds(300, 300, 300, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        table = new JTable(new MyTableModel());
        // table.getTableHeader().setReorderingAllowed(false);
        table.setAutoCreateRowSorter(true);
        scroll = new JScrollPane(table);
        table.addMouseListener(new MyTableMouseAdapter());
        add(scroll);
        setVisible(true);
     
        MyTableModel model = (MyTableModel) table.getModel();
        model.setValues(new Object[] [] {{"Mon nom 1","Mon prenom 1","25"},{"Mon nom 2","Mon prenom 2","25"} });
      }
    bon courage
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu as le tutoriel sur es JTable de Baptiste Wicht qui contient tout ce qu'il te faut: http://baptiste-wicht.developpez.com.../swing/jtable/
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut importer liste dans JTable
    Merci

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Re svp : Importer liste dans JTable
    le probleme est que les champs (nom1+prenom1+nombre1) appartiennent à un noeud1 et que je dois remplir les champs dans la JTable pour tous les noeuds( 1 à 400).
    je dois donc faire une boucle For-each à chacun des noeuds et je ne sais pas la coupler avec le remplissage de la JTable.

    quelqu'un pourrait-il m'aider ??
    merci beaucoup !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Points : 321
    Points
    321
    Par défaut
    Juste un détails sur ton code que je viens de voir.
    Lorsque tu extends une classe, dans ton constructeur, ne faut-il pas mettre un super(args...) en première ligne ?

  7. #7
    Membre éclairé
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 471
    Points : 831
    Points
    831
    Par défaut
    Bonjour samibipbip

    Normalement cela doit se faire tout seul si tu as bien géré ton modèle.

    la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      @Override
      public int getRowCount() {
        return values.length;
      }
    doit renvoyer le nombre de lignes à remplir

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      @Override
      public Object getValueAt(int rowIndex, int columnIndex) {
        return values[rowIndex][columnIndex];
      }
    ce que tu dois afficher dans chaque cases

    Cordialement
    Page sur Developpez : http://pbriand.developpez.com

Discussions similaires

  1. Importer les valeurs d'une liste dans une autre feuille
    Par NewYork dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/03/2011, 11h35
  2. [débutant] Comment gérer une liste dans une liste
    Par Lenoiche dans le forum iReport
    Réponses: 0
    Dernier message: 16/07/2008, 10h41
  3. champ d'une liste lié à une liste dans un autre site
    Par guintolli dans le forum SharePoint
    Réponses: 8
    Dernier message: 08/07/2008, 14h51
  4. Réponses: 0
    Dernier message: 14/02/2008, 11h36
  5. Appel d'une liste dans une liste (JSTL)
    Par abalgue dans le forum Hibernate
    Réponses: 4
    Dernier message: 15/06/2007, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo