IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Sources JavaConsultez toutes les sources

Nombre d'auteurs : 29, nombre de sources : 134, création le 13 avril 2013 

 
OuvrirSommaireInterfaces graphiquesTableaux et arbres

La classe JTableFixedColumn est une extension de JScrollPane. Elle permet de visualiser une JTable dont un certain nombre de colonnes sont fixes par rapport à la vue.

Créé le 16 août 2004  par Johann Heymes

Téléchargez le zip

Cette classe change la couleur des cellules choisies du rouge vers le bleu et inversement

Créé le 16 septembre 2004 

Téléchargez le zip

Cette classe permet de colorer chaque colonne d'une JTable

Créé le 16 septembre 2004 

Téléchargez le zip

Cette classe simple montre comment insérer une JProgressBar dans une JTable

Créé le 16 septembre 2004 

Téléchargez le zip

Cet exemple permet de visualiser une arborescence de fichiers grâce à un JTree. Celui ci affiche tous les fichiers et répertoires d'une racine donnée (répertoire). L'application utilise notamment les noms et icones système des fichiers.

Créé le 16 septembre 2004  par Ioan Calapodescu

Téléchargez le zip

Voici un code permettant d'extraire sous forme de string la position des colonnes d'un JTable. Tres pratique donc pour ensuite sauvegarder cette position dans un .ini via les Properties :

 
Sélectionnez
import  java.util.*; 
import  javax.swing.*; 
import  javax.swing.table.*; 

/** 
 * Permet de récuperer/positionner l'ordre des colonnes d'une table 
 * @author  divxdede 
 */ 
public class TableColumnOrderManager 
{ 
   /** Récupere l'ordre des colonnes sous la forme "2,0,1" 
    *  Donne l'ordre courant par rapport à l'ordre d'origine de la TableModel 
    *  @return Ordre courant des colonnes (ex: "2,0,1") 
    **/ 
   public static String getTableOrder(JTable table) 
   {  String Result = ""; 
      int nbrColumns = table.getColumnCount(); 

      for(int i  = 0 ; i < nbrColumns ; i++) 
      {  int realColumn = table.getColumnModel().getColumn(i).getModelIndex(); 
                  
         Result += realColumn; 
         if(i < nbrColumns - 1) Result +=","; 
      } 
      return Result; 
   } 
    
   /** Réordonne les colonnes d'une table 
    *  IMPORTANT les numero dans "2,0,1" se refere à la position d'origine du TableModel 
    *  @param order Ordre souhaité par rapport à l'origine 
    *  @param table La JTable à réordonner 
    **/ 
   public static void setTableOrder(String order,JTable table) 
   {  
      ArrayList expected = makeOrderList(order); 
      ArrayList having   = makeOrderList( getTableOrder(table) ); 
    
      for(int i = 0 ; i < table.getColumnCount() ; i++) 
      { 
        Integer valExpected = (Integer)expected.get(i); 
        Integer valHaving   = (Integer)having.get(0); 
          
        if( valExpected.intValue() == valHaving.intValue() ) 
        { having.remove(0); 
          continue; 
        } 

        int posExpectedOnCurrent = having.indexOf(valExpected); 
          
        System.out.println("Move column " + (posExpectedOnCurrent + i) + " to " + i); 
        having.remove(posExpectedOnCurrent); 
        
        table.moveColumn( posExpectedOnCurrent + i , i ); 
      } 
    } 
    
   /** Restaure les colonnes à leur position d'origine 
    *  @param table JTable dont ont veux restaurer la position des colonnes 
    **/ 
   public static void restoreTableOrder(JTable table) 
   {    String strOrder = ""; 
        for(int i = 0 ; i < table.getColumnCount() ; i++) 
        {   strOrder += i; 
            if(i < table.getColumnCount() -1 ) strOrder += ","; 
        } 
        
        setTableOrder(strOrder,table); 
   } 
    

    /** Méthode interne pour générer une liste d'ordre **/ 
    private static ArrayList makeOrderList(String strList) 
    {   ArrayList result = new ArrayList(); 

        StringTokenizer tokenizer = new StringTokenizer(strList, ","); 
        while(tokenizer.hasMoreTokens()) 
        { String  token = tokenizer.nextToken(); 
          Integer value = new Integer( Integer.parseInt(token) ); 
          result.add(value); 
        } 
        
        return result; 
    } 
} 

le principe est simple
un exemple

 
Sélectionnez
 /** Sauve l'ordre actuel des colonnes la table **/ 
  String saveOrder = TableColumnOrderManager.getTableOrder(maTable); 

  /** Modifier l'ordre **/ 
  TableColumnOrderManager.setTableOrder("3,2,1,0",maTable) 

  /** Réinitialiser l'ordre par défaut **/ 
  TableColumnOrderManager.restoreTableOrder(maTable); 

  /** Modifier l'ordre avec celui sauvegardé au début **/ 
  TableColumnOrderManager.setTableOrder(saveOrder,maTable) 

on peut meme étendre ce principe sur la taille des colonnes aussi simplement.

Créé le 21 janvier 2005  par divxdede

Ce code montre comment on peux personaliser le popup d'une JComboBox Pour commencer, il faut savoir que c'est le composant UI associer au JComboBox qui se charge d'afficher le popup. Je vais donc commencer par sa création.
Ensuite pour une cohérence d'affichage entre le popup et la zone du JCombox, redéfinir un ListCellRenderer.

Le composant UI représenté par la classe ComboTreeUI :
En fait on va juste lui dire d'uiliser un autre Popup que celui habituel

Ensuite il faute créer le popup représenté par la classe ComboTreePopup

En fait on fait deux choses, on lui dit d'utiliser une liste dont le model est un peu spécial et va suivre et on redéfinit le comportement de la souris.
Le model de la liste est représente par la classe ModelListTree

Il reste plus qu'a créer le renderer et le JComboTree.
Le Renderer est représenté par la classe RenduComboTree
Le JComboTree est représenté par la classe JComboTree

Pour que l'affichage ressemble à un arbre j'utilises un layout personnel représenté par la classe EcartLayout

Créé le 11 juin 2005  par JHelp

Téléchargez le zip

C'est une table, dont on peut choisir la taille des cellules par rapport aux autres, les redimenssionées, les déplacées, mettre des entête ou on veut, et plein de trucs sympas comme ça Wink
Pour récupérer, il s'aggit de quatre classes, plus une pour un exemple (il casse pas de briques, mais c'est pour montrer une partie du potentiel)
La classe TableSouple elle même, du package developpez.swing est à récupérée à :
TableSouple
Le modèle de la table, du package developpez.swing.model, est à récupéré à :
ModelTableSouple
L'interface pour faire des écouteurs des événements survenants sur la table, dans le package developpez.swing.listener :
TableSoupleListener
La classe décrivant les événements dans le package developpez.swing.event :
TableSoupleEvent

Voila pour les classes nécéssaire au fonctionnement de la table.
En prime un petit exemple dans le package developpez.tests :
TestTableSouple

Créé le 11 juin 2005  par JHelp
Tous les codes sources fournis gratuitement ici sont soumis à la licence GNU LGPL traduite en français ici. Par contre, la page de présentation constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2004-2005 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.