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: