Swing: Activer la Sélection des colonnes d’une JTable

Author:

 list, list, set, java, swing, awt, JFrame, table
Download

 
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);
                }
            });
 
    }
 
}