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 :

[Débutant] JTable non editable+DocumentListener


Sujet :

Composants Java

  1. #1
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut [Débutant] JTable non editable+DocumentListener
    Bonsoir,

    Voilà ca fait plus de 2hueres que je cherche comment faire mais là je suis fatiguée

    Je voudrais savoir comment faire pour rendre mon JTable non editable sachant que la classe contenant ce JTable est "Extends JFrame implements DocumentListener"
    Merci d'avance.

  2. #2
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Il faut que tu redéfinisses un model pour ta table
    exemple SUN
    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
    new AbstractTableModel() {
        public String getColumnName(int col) {
            return columnNames[col].toString();
        }
        public int getRowCount() { return rowData.length; }
        public int getColumnCount() { return columnNames.length; }
        public Object getValueAt(int row, int col) {
            return rowData[row][col];
        }
        public boolean isCellEditable(int row, int col)
            { return false; }
        public void setValueAt(Object value, int row, int col) {
            rowData[row][col] = value;
            fireTableCellUpdated(row, col);
        }
    }
    ET le plus important est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       public boolean isCellEditable(int row, int col)
            { return false; }
    PS : c'est une des questions les plus posés sur les JTables ??? et tu as rien trouvé ?

  3. #3
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Oki merci,je t'assure que j'avais bien cherche mais à chaque fois il y avait plein de code avec.
    Là j'ai essayé ca:
    AbstractTableModel dataModel = new AbstractTableModel() {

    public int getColumnCount() { return 10; }

    public int getRowCount() { return 10;}

    public Object getValueAt(int row, int col) {
    return new Integer((1+row)*(1+col));
    }

    public boolean isCellEditable(int row, int col){

    return false;
    }
    public Class getColumnClass(int column) {
    return Number.class;
    }
    };

    Bon ca fonctionne tres bien,mais y a t il un moyen d'ajouter des lignes dynamiquement stp?

  4. #4
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Je voulais savoir aussi ce que ca retorunait la methode:public String getColumnName(int col)

    car j'arrive pas a m'en servir,je pense que c'est pour donner le nom des colonnes mais comment?
    Merci d'avance

  5. #5
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    il faut tout lire

    1. Ajout dynamique :

    Citation Envoyé par fremsoi
    public void setValueAt(Object value, int row, int col) {
    rowData[row][col] = value;
    fireTableCellUpdated(row, col);
    }
    En ce qui concerne les noms de colonnes quelle est ton problème ???
    ( d'ailleurs dans ton exemple ya pas de nom de colonnes .... )

  6. #6
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Oui dsl pour getColumn c'est bon, mais le SetValueAt c'est pour inserer une ligne dans un ligne du tableau non?

    Moi ce que je voudrais faire c'est par exemple si le JTable fais 10lignes,je voudrais savoir si c'est possible le le modifier et qu il devienne un tableau de 11 lignes par exemple

  7. #7
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Alors voici un exemple de classe que j'ai créer donc modifie ce que tu veux
    Du coup autant de lignes que tu veux :
    Ps : j'ai enlevé du code inutile, mais tu dois "jouer un peu" avec monTab
    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
     
     
    public class TableModelCurve extends AbstractTableModel implements TableModel {
     
    	private static final long serialVersionUID = 1L;
     
    	ArrayList<myObj> monTab;
    	String[] columnNames;
     
    	public TableModelCurve(String[] columnNames,
    			 ArrayList<myObj> monTab) {
    		super();
    		this.columnNames = columnNames;
    		this.monTab=  monTab;
    	}
     
    	public String getColumnName(int col) {
    		return columnNames[col].toString();
    	}
     
    	public int getRowCount() {
    		return monTab.size();
    	}
     
    	public int getColumnCount() {
    		return this.columnNames.length;
    	}
     
    	public Object getValueAt(int row, int col) {
                                    return // Ce que tu veux
                    }
     
    	public boolean isCellEditable(int row, int col) {
    		return false;
    	}
     
    	.....

  8. #8
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    petit oubli :

    pour ton setValue, tu fais un monTab.add(...) ; pour pouvoir intégrer à l'ArrayList puis tu déclenches la mise à jour de la table

  9. #9
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Ok, merci beaucoup ca fonctionne

  10. #10
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    de rien

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

Discussions similaires

  1. [JTable] rendre une cellule non editable après edition
    Par Phil29 dans le forum Composants
    Réponses: 3
    Dernier message: 31/08/2010, 19h00
  2. JTable avec cases non-editable
    Par Dine_Med dans le forum Composants
    Réponses: 6
    Dernier message: 14/05/2009, 18h51
  3. Cellules non editables de JTable
    Par adil1251985 dans le forum Composants
    Réponses: 1
    Dernier message: 31/05/2007, 20h13
  4. Cell d'une JTable non editable
    Par _kal_ dans le forum Composants
    Réponses: 5
    Dernier message: 14/12/2006, 00h38
  5. [JTable] non editable
    Par delph1983 dans le forum Composants
    Réponses: 15
    Dernier message: 24/04/2006, 18h53

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