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 :

[JTable et JTabbedPane] Comment accéder à chacun des onglets


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Par défaut [JTable et JTabbedPane] Comment accéder à chacun des onglets
    Bonjour,

    J'ai actuellement un léger problème dans le développement de mon appli.

    Je construis un JTabbedPane puis de manière dynamique, j'y ajoute 12 onglets dans lesquels j'insère une JTable.
    Le problème est que je ne sais pas comment sauvegarder les données présentes dans chacune des tables. Le "hic" ne vient pas de la sauvegarde en elle-même, mais de la manière d'accéder à l'info.

    Comment implémenter une boucle qui, pour chaque onglet me permettrait de lire toutes les lignes de ma table ?

    J'espère que mes explications ne sont pas trop ambigues, le cas échéant, je pourrais poster une partie de mon code.

    Vous remerciant par avance,

    Romain.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 883
    Par défaut
    Bonjour,

    Il faudrait que tu utilises un model commun à toutes tes JTable, afin que tes données globales puissent être traitées par la suite.

    Est-ce que ça aide ?

    K

  3. #3
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Je ne capte pas :
    tu construis 12 onglets qui affichent tous la même JTable ?
    Ou bien les 12 onglet affichent des données différentes de ta JTable ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Par défaut
    Re,

    J'utilise déjà un model ... je pense qu'écrire ce que j'ai fais pourra simplifier la compréhension de mon "ennui"

    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
     
    /* Construction de mon JTabbedPane */
    tabbedPane = new JTabbedPane();
    tabbedPane.setBounds(new Rectangle(10, 40, 755, 500));
    tabbedPane.addChangeListener(this);
     
    for (int i=0; i<12; i++) { 
    	JLabel jlTMP = new JLabel();
    	jlTMP.setBounds(new Rectangle(10, 80, 300, 250));
    	jlTMP.setHorizontalAlignment(JLabel.CENTER);
    	jcTMP = jlTMP;
     
            /* Noms donnés aux colonnes de mes tables */
    	String[] columnNames = {" Date ", " Opération ", " Débit ", " Crédit "};
     
            /* Pas de données au départ */
    	Object [][] data = null;
     
            /* Création du model pour ma table */
            dtmTable = new DefaultTableModel (data, columnNames);
            table = new JTable(dtmTable);
            table.setPreferredScrollableViewportSize(new Dimension(500, 70));
     
            /* implémentation d'un renderer pour alterner 2 à 2 les couleurs des lignes de ma table */
            table.setDefaultRenderer (Object.class, new DefaultTableCellRenderer() {
    		private static final long serialVersionUID = 1L;
     
     	        public Component getTableCellRendererComponent ( 
    					JTable jTableListeOffOperations,Object value,boolean isSelected, boolean hasFocus,int row,int column) 
    						{
    							setBackground((row%2==1)?Color.LIGHT_GRAY:Color.WHITE);
     
    							return super.getTableCellRendererComponent(jTableListeOffOperations,value,isSelected,hasFocus,row,column);
    						}
    			});
     
            /* Ajout de ligne dans ma table */
    	for (int j=0; j<100; j++)
    	       	dtmTable.addRow(test);
     
    	/* Ajout de la table dans un scrollpane */
    	scrollPane = new JScrollPane(table);
    	scrollPane.setBounds(new Rectangle(0, 0, 750, 470));
     
    	jcTMP.add(scrollPane);
    	tabbedPane.addTab(sMonths[i], null, jcTMP, " Mois de " +sMonths[i]);
     
    	}
     
    	add(tabbedPane);
    	tabbedPane.setSelectedIndex(currentMonth-1);

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut
    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
     
    for (int i = 0; i < 12; i++){
     
               vColumn = new Vector();  //Tes colonnes de ta JTable
               vRow = new Vector(); //Tes lignes de ta JTable
     
               /*
               *...Tu remplis ton vColumn et ton vRow
               */
     
               model = new DefaultTableModel(vRow, vColumn);
               //On attribue le TableModel à la JTable
               jtab = new JTable(model);
     
               //Tu la rajoutes à ton vecteur pour pouvoir y accéder par la suite
               vJTable.add(jtab);
     
               //et tu rajoutes ta jtab dans l'onglet qui te convient
    }

    ensuite lorsque tu voudras accéder a tes données de chaque jtable : pas de problème puisque tu as stocké tes données dans le vJTable :

    Ainsi ((JTable)vJTable.get(0)) est ta première JTable
    ((JTable)vJTable.get(1)) ta deuxieme ainsi de suite

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Par défaut
    J'étudie/test ça et te fais un retour sur ta solution ...

    En tout cas, merci

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Par défaut
    Après implantation de ta solution, tout marche à merveille

    Merci bcp et bonne continuité à tous.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTabbedPane] Comment détecter le changement des onglets
    Par sinpay dans le forum Composants
    Réponses: 4
    Dernier message: 17/09/2009, 07h49
  2. Réponses: 6
    Dernier message: 06/07/2009, 13h06
  3. JTabbedPane: aligner le titre des onglets
    Par MathiasM dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 18/12/2007, 15h02
  4. Réponses: 5
    Dernier message: 01/06/2006, 23h17
  5. Comment créer des onglets "glissants"
    Par miniil dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/06/2005, 22h24

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