import javax.swing.*; import javax.swing.table.*; import java.awt.event.*; import java.awt.*; import java.awt.event.*; public class JTableColumnSelect extends JFrame { JTable table; // L'en-tête de Jtable String titre[]={"Langage","Type"}; // Les valeurs de Jtable Object [][]valeurs={{"C","Procédural"} ,{"C++","Procédural et Orienté Objet"} ,{"C#","Procédural et Orienté Objet"} ,{"Java","Orienté Objet"} ,{"Perl","Procédural et Orienté Objet"} ,{"PHP","Procédural et Orienté Objet"} ,{"Python","Procédural et Orienté Objet"}}; DefaultTableModel tabModel; public JTableColumnSelect() { // Créer un composant JTable table=new JTableColonneSelection(valeurs, titre); // Ajouter le composant dans un JScrollPane JScrollPane jsp = new JScrollPane(table); // Ajouter le JScrollPane dans le JFrame getContentPane( ).add(jsp, BorderLayout.CENTER); } public static void main(String [] arg) { JTableColumnSelect tab= new JTableColumnSelect(); tab.setSize(450,150); tab.setVisible(true); } } class JTableColonneSelection extends JTable { public JTableColonneSelection (Object[][] items, Object[] headers) { super (items, headers); setColumnSelectionAllowed (true); setRowSelectionAllowed (false); final JTableHeader header = getTableHeader(); header.addMouseListener (new MouseAdapter() { public void mouseReleased (MouseEvent e) { if (! e.isShiftDown()) clearSelection(); int pick = header.columnAtPoint(e.getPoint()); addColumnSelectionInterval (pick, pick); } }); } }