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 :

[Swing] Composant JTextField dans une JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut [Swing] Composant JTextField dans une JTable
    Salut, je veux faire un tableau de 5 collones et 5 rangées, je veux y mettre des jTextField:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        private Object datasJT1[][]=new Object[5][1000];
        private Object titresJT1[]={"REF", "Description", "Prix unitaire", "Quantité", "Total"};
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            for(int i=0;i<5;i++) {
                datasJT1[0][i]=new JTextField();
                datasJT1[1][i]=new JTextField();
                datasJT1[2][i]=new JTextField();
                datasJT1[3][i]=new JTextField();
                datasJT1[4][i]=new JTextField();
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            jTable1.setModel(new ZModel(datasJT1, titresJT1));
            jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
            jScrollPane1.setViewportView(jTable1);
            TableColumn colonne=jTable1.getColumnModel().getColumn(0);
            colonne.setPreferredWidth(50);
            colonne=jTable1.getColumnModel().getColumn(1);
            colonne.setPreferredWidth(200);
            colonne=jTable1.getColumnModel().getColumn(2);
            colonne.setPreferredWidth(50);
            colonne=jTable1.getColumnModel().getColumn(3);
            colonne.setPreferredWidth(50);
            colonne=jTable1.getColumnModel().getColumn(4);
            colonne.setPreferredWidth(50);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTable1.setDefaultRenderer(JComponent.class, new TableComponent());
    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
            class ZModel extends AbstractTableModel {
            private Object data[][];
            private Object title[];
     
            private ZModel(Object[][] datasJT1, Object[] titresJT1) {
                this.data=datasJT1;
                this.title=titresJT1;
            }
     
            public int getRowCount() {
                return this.data.length;
            }
     
            public int getColumnCount() {
                return this.title.length;
            }
     
            public Object getValueAt(int row, int col) {
                return this.data[row][col];
            }
            @Override
            public String getColumnName(int col) {
            return this.title[col].toString();
                }
     
            }
    public class TableComponent extends DefaultTableCellRenderer {
     
            @Override
    	public Component getTableCellRendererComponent(JTable table,
    			Object value, boolean isSelected, boolean hasFocus, int row,
    			int column) {
                super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    		//Si la valeur de la cellule est un JButton, on transtype notre valeur
    		if (value instanceof JTextField){
    			return (JTextField) value;
    		}
    		else
    			return this;
    	}
    }
    Le résultat c'est que j'ai la description des objets (javax.swing.jtextfield ...)
    plutôt que les text fields.
    J'ai du me planter quelque part mais je ne vois pas ou
    Merci

  2. #2
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Salut, finalement j'ai trouvé la solution il faut ajouter cette méthode dans la class ZModel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		public Class getColumnClass(int col){
    			return this.data[0][col].getClass();
    		}

Discussions similaires

  1. editer un JTextField contenu dans une JTable
    Par thierry_b dans le forum Composants
    Réponses: 8
    Dernier message: 16/07/2009, 17h52
  2. Intègrer des composants dans une jTable
    Par programaniac dans le forum Débuter
    Réponses: 2
    Dernier message: 30/03/2009, 09h53
  3. PB du caret sur un JTextField dans une Jtable
    Par jeffciara dans le forum Composants
    Réponses: 4
    Dernier message: 14/11/2006, 18h48
  4. [SWING] Bouton "Parcourir" dans une JTable
    Par schniouf dans le forum Composants
    Réponses: 1
    Dernier message: 01/09/2006, 13h40
  5. Réponses: 1
    Dernier message: 15/03/2006, 16h30

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