Publié le 07/09/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Fixer la largeur d'une colonne d'un JTable

Par défaut, les colonnes d'un JTable ont une largeur commune. De plus dans une application JAVA, l'utilisateur peut modifier la taille des colonnes avec la souris de la même manière que dans un tableur.

Ajuster la taille des colonnes

Lorsque l'on utilise une jTable dans une application JAVA, le composant se présente comme un tableur Excel. Parfois il est préférable de fixer en dur la largeur des colonnes. De plus, il est possible également de bloquer le redimensionnement des colonnes.
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
 
/**
 * Fixer la taille des colonnes
 * http://www.fobec.com/java/991/fixer-largeur-une-colonne-jtable.html
 * @author Axel 2010
 */
public class ColumnResizer {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JFrame frame = new JFrame("Exemple JTable");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(600, 400);
 
        JTable jTable = new JTable();
        //Ajouter les données dans JTable
        String[] headers = new String[]{"Marque", "Modele", "Ref"};
        Object rows[][] = {{"Apple", "iPhone", "M1"},
            {"Sony", "Xperia", "M2"},
            {"Microsoft", "Lumia", "M3"},
            {"Samsung", "Galaxy", "M4"}
        };
        DefaultTableModel tableModel = new DefaultTableModel(rows, headers);
        jTable.setModel(tableModel);
 
        Container container = frame.getContentPane();
        container.setLayout(new FlowLayout());
 
        //Bloquer le redimensionnement
        jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        /**
         * fixer la largeur de la première colonne à 200 pixels
         */
        TableColumn col = jTable.getColumnModel().getColumn(0);
        col.setPreferredWidth(200);
        /**
         * fixer la largeur de la troisième colonne à 25 pixels
         */
        col = jTable.getColumnModel().getColumn(2);
        col.setPreferredWidth(25);
 
        //GUI
        JScrollPane jscrollPane = new javax.swing.JScrollPane();
        jscrollPane.setViewportView(jTable);
        frame.getContentPane().add(jscrollPane);
        frame.setVisible(true);
    }
}

La class est un exemple de redimensionnement de colonne dans un jTable. Avec les données utilisées, la taille de la première colonne est fixée à 200 pixels et celle de la troisième colonne est de 25 pixels. De plus, la fonction setAutoResizeMode() bloque le redimensionnement des colonnes, donc l'utilisateur ne pourra pas adapter la largeur de la colonne avec la souris.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
07/09/2010
Visualisation
vu 6802 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Tactic Rayan dans java

Merci beaucoup, c'est tres interressent, tres longtemps que j'ai recherche ce code

Publié par Connan dans php5

j'utilise mysql phpmyadmin et j'ai cree une table IP mais j'ai mis varchart(15) mais quese qui faut que je fasse pour stocker l'ip des joueurs qui s'inscrivent

Publié par revente lmnp dans logiciel

J'aimerais avoir plus d'informations sur cette article, si quelqu'un peux m'en donnee d'avantage, je vous en remercie d'avance.

Publié par Berenger dans java

Bonjour Mr Foebec je suis vraiment très content de cette réponse vous êtes simplement génial. quand je pense au nombre de jour que ça m'a pris et le temps que j'ai pe...

Publié par medfayz dans java

hi everybody thanks for the code , and please can any one help me to fix that exception.
javax.media.NoPlayerException: Cannot find a Player for :vfw:0

thanks