Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

JTable: renommer le nom des colonnes

3 réponses
Avatar
Tony
Bonjour,
J'ai recup=E9rer un code sur internet qui permet de g=E9nerer un Tableau
de X row et Y colonne, le pb est que je voudrais renomer le nom des
colonnes qui actuellement va de A-F.
Je cree ma JTable =E0 l aide d'un model comme suit
private static HugeTableModel tableModel =3D new HugeTableModel
(50,6);
private static JTable tabl =3D new JTable (tableModel);

Je fourni HugeTableModel

import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.util.*;







public class HugeTableModel extends AbstractTableModel
{
private int rowCount; // Nombre de lignes
private int columnCount; // Nombre de colonnes

// Table de hash m=E9morisant les valeurs des cellules
private Hashtable cellValues =3D new Hashtable ();

// Les instances de la classe interne CellKey sont utilis=E9es
// comme cl=E9 de hash pour acc=E9der =E0 la valeur d'une cellule
// stock=E9e dans cellValues.
private class CellKey
{
private int row; // Ligne
private int column; // Colonne

// Constructeur
public CellKey (int row, int column)
{
this.row =3D row;
this.column =3D column;
}

// M=E9thode de la classe Object outrepass=E9e pour renvoyer
// true si object et this d=E9signe la m=EAme cellule.

public boolean equals (Object object)
{
return object instanceof CellKey
&& ((CellKey)object).row =3D=3D row
&& ((CellKey)object).column =3D=3D column;
}

// M=E9thode de la classe Object outrepass=E9e pour renvoyer
// un code de hash. La valeur retourn=E9e doit =EAtre la m=EAme
// pour deux objets d=E9signant la m=EAme cellule.
public int hashCode ()
{
return (row % 0xFFFF) | ((column % 0xFFFF) << 16);
}
}

// Constructeur par d=E9faut
public HugeTableModel ()
{
this (Short.MAX_VALUE, Short.MAX_VALUE);
}

// Constructeur avec le nombre de lignes et de colonnes
public HugeTableModel (int rowCount, int columnCount)
{
this.rowCount =3D rowCount;
this.columnCount =3D columnCount;
}

// Doit renvoyer le nombre de lignes
public int getRowCount ()
{
return rowCount;
}

// Doit renvoyer le nombre de colonnes
public int getColumnCount ()
{
return columnCount;
}

public boolean isCellEditable (int row, int column)
{
// Autorisation d'=E9diter toutes les cellules
return true;
}

public Object getValueAt (int row, int column)
{
// Recherche de la valeur stock=E9e dans la table de hash
return cellValues.get (new CellKey (row, column));
}

public void setValueAt (Object value, int row, int column)
{
CellKey key =3D new CellKey (row, column);
if (value =3D=3D null)
// Suppression de la table de hash si la valeur est nulle
cellValues.remove (key);
else
// Ajout de la valeur =E0 la table de hash
cellValues.put (key, value);
// Avertissement des listeners
fireTableChanged (new TableModelEvent (this, row, row, column));
}
}

3 réponses

Avatar
xav
Tony wrote:
Bonjour,
J'ai recupérer un code sur internet qui permet de génerer un Tableau
de X row et Y colonne, le pb est que je voudrais renomer le nom des
colonnes qui actuellement va de A-F.
Je cree ma JTable à l aide d'un model comme suit
private static HugeTableModel tableModel = new HugeTableModel
(50,6);
private static JTable tabl = new JTable (tableModel);



basiquement, il faut surcharger cette methode dans ton JTable.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTable.html#getColumnName(int)

Avatar
xav
xav wrote:
Tony wrote:

Bonjour,
J'ai recupérer un code sur internet qui permet de génerer un Tableau
de X row et Y colonne, le pb est que je voudrais renomer le nom des
colonnes qui actuellement va de A-F.
Je cree ma JTable à l aide d'un model comme suit
private static HugeTableModel tableModel = new HugeTableModel
(50,6);
private static JTable tabl = new JTable (tableModel);



basiquement, il faut surcharger cette methode dans ton JTable.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTable.html#getColumnName(int)




ou definir dans le tablemodel la méthode getColumnName(int)

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/TableModel.html#getColumnName(int)

lire le source du jdk permet de trouver ces réponses là assez facilement ;)


Avatar
Tony
C'est bon j'ai reussi merci.