Changer la hauteur d’une ligne dans une JTable en Java

Lorsque vous travaillez avec JTable dans Swing, nous avons parfois besoin que la table ait des lignes de différentes hauteurs, autres que les valeurs par défaut fournies par le composant JTable. Cela nous permet d’agrandir les cellule de JTable.

Regardons un exemple d’un programme Swing, comment modifier la valeur par défaut de la hauteur d’une ligne dans une JTable :


 
 

Définir la hauteur d’une ligne dans une JTable

Cela peut être fait facilement en utilisant ces deux méthodes de la classe JTable:

  • setRowHeight(int row, int height): définit la hauteur (en pixels) d’une seule ligne.
  • setRowHeight(int height): définit la hauteur (en pixels) de toutes les lignes du JTable définies auparavant.

Par exemple, l’instruction suivante définit la hauteur de toutes les lignes sur 30 pixels:

table.setRowHeight(30);

Sortie:


 
Nous pouvons définir la hauteur d’une seule ligne, par exemple la troisième ligne(index = 2) aura une hauteur de 50 pixels:

table.setRowHeight(2, 50);

Sortie:


 
 

Exemple Complet:
import javax.swing.*;
import java.awt.*;
 
public class Main {
 
    public static void main(String[] args) {
        //crée un frame
        final JFrame frame = new JFrame("Exemple de JTable");
 
        //En-têtes pour JTable 
        String[] columns = new String[] {
            "Id", "Nom", "Adresse", "Taux horaire", "A temps partiel"
        };

        //données pour JTable dans un tableau 2D
        Object[][] data = new Object[][] {
            {1, "Thomas", "Paris", 20.0, true },
            {2, "Jean", "Marseille", 50.0, false },
            {3, "Yohan", "Lyon", 30.0, true },
            {4, "Emily", "Toulouse", 60.0, false },
            {5, "Alex", "Nice", 10.0, false },
        };
 
        //crée un JTable avec des données
        JTable table = new JTable(data, columns);
        table.setRowHeight(30);
        table.setRowHeight(2, 50);
		
        JScrollPane scroll = new JScrollPane(table);
        table.setFillsViewportHeight(true);
 
        JLabel labelHead = new JLabel("Liste des employes");
        labelHead.setFont(new Font("Arial",Font.TRUETYPE_FONT,20));
 
        frame.getContentPane().add(labelHead,BorderLayout.PAGE_START);
        //ajouter la table au frame
        frame.getContentPane().add(scroll,BorderLayout.CENTER);
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 180);
        frame.setVisible(true);
    }
}

Sortie:

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *