Redimensionner une jTable dynamiquement

jojo6666 Messages postés 10 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 17 janvier 2005 - 7 sept. 2004 à 17:11
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 8 sept. 2004 à 11:35
Bonjour,

J'aimerais savoir comment redimensionner une jTable alimentée par un resultset si le nombre d'enregistrements du fichier visé augmente ou diminue.

J'utilise l'AbstractTableModel pour fournir les données à la jTable.

Merci de vos réponses.

2 réponses

cid019 Messages postés 237 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 juillet 2006
8 sept. 2004 à 11:03
je ne sais pas si ca va repondre a taquestion mais j'ai cree un model parametrable en fonction du nombre de colonnes.
le voici :

class LignesModel extends AbstractTableModel
{
private Vector[] vc;
private String[] st;
private int nbcol;
private boolean b;

public int getNbCol() { return nbcol; }
public Vector[] getVector() {return vc; }

public LignesModel(int nbc, String[] ch)
{
nbcol = nbc;
st = new String[nbcol];
vc = new Vector[nbcol];
for (int i = 0; i < nbcol; ++i)
{
st[i] = ch[i];
vc[i] = new Vector();
}
}

public void effacerTout()
{
for (int i = 0; i < nbcol; ++i)
vc[i].clear();
}

public void effacerLigne(int index)
{
for (int i = 0; i < nbcol; i++)
vc[i].removeElementAt(index);
}

public void ajouterLigne(String[] ch)
{
for (int i = 0; i < nbcol; ++i)
vc[i].add(ch[i]);
}

public String[] getColonne(int index)
{
return (String[]) vc[index].toArray(new String[vc[index].size()]);
}

public String[][] getLignes(int nbl)
{
String[][] res = new String[nbl][nbcol];
for (int i = 0; i < nbl; i++)
for (int j = 0; j < nbcol; j++)
res[i][j] = vc[j].elementAt(i).toString();
return res;
}

public String[] getLigne(int index)
{
String[] res = new String[nbcol];
for (int i = 0; i < nbcol; i++)
res[i] = vc[i].elementAt(index).toString();
return res;
}

public int getColumnCount()
{
return nbcol;
}

public int getRowCount()
{
return vc[0].size();
}

public String getColumnName(int col)
{
return st[col];
}

public Object getValueAt(int parm1, int parm2)
{
return vc[parm2].get(parm1);
}

public boolean isCellEditable(int row, int col)
{
return true;
}

public void setValueAt(Object obj, int row, int col)
{
vc[col].set(row, obj);
fireTableCellUpdated(row,col);
}
}

en esperant que ca te sera utile...

cid019
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
8 sept. 2004 à 11:35
GodConan :clown)

Et bien ds tous les cas si ta requete est chac foi differente il te faut reinit les valeurs de ton model de donné ... ca donnera l ilusion d un effet dinamik mais en realiter tu reinit tous... ( c le plus simple )
Autrement tu peut te faire ton model qui gere la complexité de tes mise a jour de table tu peu meme relier directement ce model a ta base de donne mais je te di pas tous le code .. ;o)

++
0
Rejoignez-nous