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 avec des largeurs de colonnes fixées


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 84
    Points : 61
    Points
    61
    Par défaut JTable avec des largeurs de colonnes fixées
    Bonjour,
    j'ai créé un JTable auquel j'ai associé un TableModel qui ne renvoie que des objets de type String. Pour chaque colonne du JTable, j'ai défini une taille par les instructions:
    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
    		m_contribTable.setDefaultRenderer(String.class, null);
     
     
    		m_contribTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // pour faire apparaitre l'ascenseur du bas
    		m_contribTable.getColumnModel().getColumn(0).setPreferredWidth(20);
    		m_contribTable.getColumnModel().getColumn(1).setPreferredWidth(50);
    		m_contribTable.getColumnModel().getColumn(2).setPreferredWidth(100);
    		m_contribTable.getColumnModel().getColumn(3).setPreferredWidth(150);
    		m_contribTable.getColumnModel().getColumn(4).setPreferredWidth(300);
    		m_contribTable.getColumnModel().getColumn(5).setPreferredWidth(150);
    		m_contribTable.getColumnModel().getColumn(6).setPreferredWidth(400);
    		m_contribTable.getColumnModel().getColumn(7).setPreferredWidth(40);
    		m_contribTable.getColumnModel().getColumn(8).setPreferredWidth(120);
    		m_contribTable.getColumnModel().getColumn(9).setPreferredWidth(140);
    		m_contribTable.getColumnModel().getColumn(10).setPreferredWidth(150);
    	m_contribTable.getColumnModel().getColumn(11).setPreferredWidth(150);
    Par sécurité, même si cela n'a servi à rien, j'ai aussi indiqué que la classe String n'avait aucun "default renderer".

    Malgré tout, dans certains cas, comme par exemple lorsque je souhaite supprimé une ligne, ce que je fais (dans le modèle) par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public void keyPressed(KeyEvent arg0) {
    		if (arg0.getKeyChar() == KeyEvent.VK_DELETE) {
    			int currentRow = this.m_data.currentRow();
    			if (currentRow >= 0) {
    				this.m_data.deleteRow(currentRow);
    				this.fireTableRowsDeleted(currentRow, currentRow);
    			}
    		}
    	}
    les largeurs de colonne sont perdues. On dirait en fait que dans ce cas là il utilise un "renderer" qui sort de je ne sais où. Visiblement le problème est généré par le fireTableRowsDeleted() sachant que cela se passe aussi avec les autres fonctions fireXXXX(). J'ai par exemple essayé avec un fireTableDataChanged() qui m'a fait la même chose en étant appelé par cette function. Mais qui, pourtant, ne me fait pas cet effet de bord lorsqu'il est appelé par une fonction interne (lorsque j'effectue un tri sur les lignes).

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 84
    Points : 61
    Points
    61
    Par défaut
    OK. J'ai fini par trouver le problème. J'avais un ListSelectionListener qui faisait un fireTableCellUpdated(-1,0). C'est cela qui faisait que ce stupide Java détruisait ma présentation de la JTable.
    -----------------------------------------
    "Plus cela va moins j'aime Java"

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

Discussions similaires

  1. JTable avec un ensemble de colonnes fixes
    Par Johann.Heymes dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/03/2011, 19h40
  2. [PPT-2003] créer un tableau avec des largeurs de colonnes différentes
    Par headachemaster dans le forum VBA PowerPoint
    Réponses: 7
    Dernier message: 29/12/2010, 22h19
  3. JTable avec des noms de colonnes spécial
    Par OSryx dans le forum Composants
    Réponses: 5
    Dernier message: 05/10/2010, 14h26
  4. [XL-2003] Export de données excel avec largeur de colonne fixe
    Par bedrohung dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2010, 20h56
  5. [JTable] Créer une JTable vide avec des noms de colonnes.
    Par Cyborg289 dans le forum Composants
    Réponses: 2
    Dernier message: 27/09/2005, 15h54

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