IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Sommaire > Interfaces graphiques > Tableaux et arbres
        JTable avec un ensemble de colonnes fixes
        Modifier la couleur de la cellule après avoir choisi une cellule
        Colorier chaque colonne d'une JTable
        Insérer une JProgressBar dans une JTable
         JTree explorateur de fichiers
        Extraire sous forme de string la position des colonnes d'un JTable
        JComboTree
        TableSouple

        


Auteur : Johann Heymes
Version : 16/08/2004
Téléchargez le zip
JTable avec un ensemble de colonnes fixes
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.


Version : 16/09/2004
Téléchargez le zip
Modifier la couleur de la cellule après avoir choisi une cellule
Cette classe change la couleur des cellules choisies du rouge vers le bleu et inversement


Version : 16/09/2004
Téléchargez le zip
Colorier chaque colonne d'une JTable
Cette classe permet de colorer chaque colonne d'une JTable


Version : 16/09/2004
Téléchargez le zip
Insérer une JProgressBar dans une JTable
Cette classe simple montre comment insérer une JProgressBar dans une JTable


Auteur : Vedaer
Version : 16/09/2004
Téléchargez le zip
JTree explorateur de fichiers
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.


Auteur : divxdede
Version : 21/01/2005
Extraire sous forme de string la position des colonnes d'un JTable
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 :

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

/** 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.


Auteur : JHelp
Version : 11/06/2005
Téléchargez le zip
JComboTree
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


Auteur : JHelp
Version : 11/06/2005
TableSouple
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


        

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 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.