Réajuster automatiquement la taille des colonnes d'un JTable
Projet gus05 de développement Java :: Développements :: Quelque-unes de mes entités :: Programmation graphique Swing :: Composant JTable
Page 1 sur 1
Réajuster automatiquement la taille des colonnes d'un JTable
Voici une entité qui permet de doter n'importe quel objet JTable d'une fonctionnalité de réajustement automatiquement de la taille des colonnes en fonction du contenu de la table.
gus.graphic.table.columnsizeadjuster
Cette entité comporte deux classes dont le code source est donné ci-dessous :
gus.graphic.table.columnsizeadjuster
Cette entité comporte deux classes dont le code source est donné ci-dessous :
- Code:
package gus05.entity.gus.graphic.table.columnsizeadjuster;
import javax.swing.JTable;
import gus05.framework.core.Entity;
import gus05.framework.features.Give;
public class TableColumnSizeAdjuster implements Entity, Give {
public String getName() {return "gus.graphic.table.columnsizeadjuster";}
public String getCreationDate() {return "2011.04.15";}
public void give(Object obj) throws Exception
{new AdjusterHandler((JTable)obj);}
}
- Code:
package gus05.entity.gus.graphic.table.columnsizeadjuster;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
public class AdjusterHandler implements TableModelListener, Runnable {
private JTable table;
public AdjusterHandler(JTable table)
{
this.table = table;
table.getModel().addTableModelListener(this);
adjustColumnPreferredWidths(table);
}
public void tableChanged(TableModelEvent e)
{SwingUtilities.invokeLater(this);}
public void run()
{adjustColumnPreferredWidths(table);}
private void adjustColumnPreferredWidths(JTable table)
{
TableColumnModel columnModel = table.getColumnModel();
for(int col=0;col<table.getColumnCount();col++)
{
int maxwidth = 0;
for(int row=0;row<table.getRowCount();row++)
{
TableCellRenderer renderer = table.getCellRenderer(row,col);
Object value = table.getValueAt(row,col);
Component comp = renderer.getTableCellRendererComponent(table,value,false,false,row,col);
maxwidth = Math.max(comp.getPreferredSize().width,maxwidth);
}
TableColumn column = columnModel.getColumn(col);
column.setPreferredWidth(maxwidth);
}
}
}
Sujets similaires
» Doter une JTable d'un tooltip
» Doter une JTable d'une sélection instantanée sur les lignes
» Doter une JTable d'une sélection instantanée sur les cellules
» Doter une JTable d'une sélection instantanée sur les lignes
» Doter une JTable d'une sélection instantanée sur les cellules
Projet gus05 de développement Java :: Développements :: Quelque-unes de mes entités :: Programmation graphique Swing :: Composant JTable
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus