Rechercher : dans
Par :

[Java] Largueur min des colonnes d'une Jtable

Dernière réponse le 17 mar 2008 à 17:40:22 bendede, le 19 fév 2007 à 22:45:07 
 Signaler ce message aux modérateurs

Bonjour,

Je suis en train de realiser un pianoRoll (pour ceux qui connaissent) à l'aide d'un Jtable en repartant des sources de sun au sujet de JavaSound: http://java.sun.com/products/java-me...emo/index.html

Comme on peut le voir sur la capture suivante:
http://skys.dragooon.adsss.googlepages.com/Jtable.jpg


La largeur des colonnes est trop importante pour mon utilisation. Il me faudrai des cases remplie de couleur ou non, ce à travers plusieurs milliers de colonnes (50000 environ..) mais la largeur des colonnes est trop importante ici... (et je n'ai pas de scrollbar horizontale au passage non plus, si vous pouvez m'aider?)

J'ai déjà tester divers solution avec setWidth, setMaxWidth et autre.. mais sans succés pour les colonnes.

Code :

for (int i = 1; i < names.length; i++) { TableColumn col = tcm.getColumn(i); col.setWidth(1); col.setCellRenderer(renderer); }


Et pour la JscroolPane, sans succés non plu:

Code :

JScrollPane t = new JScrollPane(table); t.createHorizontalScrollBar(); add("Center", t);


Enfin, existe t-il une solution proche pour la hauteur des lignes (quand j'aurai supprimer les noms d'instruments?


Merci de prendre de votre temps pour moi

La source de ma classe en ligne à : http://rafb.net/p/RCmeaA66.html

Configuration: Windows XP
Firefox 2.0.0.1

Meilleures réponses pour « [Java] Largueur min des colonnes d'une Jtable » dans :
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

CuyenBoy, le 1 mai 2007 à 17:14:53

Salut,

J'ai le même problème que toi concernant la ScrollBar horizontale.
Le fait de modifier en drag and drop la largeur d'une colonne agit sur les autres.
J'ai cherché sur internet, trouvé pas mal de truc, mais impossible de modifier la largeur de cette putain de jTable afin d'activer le Scroll horizontal. L'outil TableColumn, je ne comprend pas son fonctionnement, à mon avis il est lié à la taille de la Jtable, son utilisation s'avère imprévisible...
Help...

Répondre à CuyenBoy

2

kurts, le 22 mai 2007 à 08:32:39

Salut,

concernant la barre de défilement horizontale, il faut utiliser

maTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


Pour la largeur des colonnes, tu peux utiliser quelque chose du genre :

maTable.setColumnModel(new DefaultTableColumnModel() {
            protected void fireColumnAdded(TableColumnModelEvent pEvent) {
                for (int index = pEvent.getFromIndex(); index <= pEvent
                        .getToIndex(); index++) {
                    getColumn(index).setPreferredWidth(30);
                }
                super.fireColumnAdded(pEvent);
            }
        });


Tu as alors une table avec toutes les colonnes a 30 . Tu peux aussi utiliser setMaxWidth() et setMinWidth().

Répondre à kurts

5

 yannou, le 17 mar 2008 à 17:40:22

Bonjour,

J'aurais juste voulu savoir a quoi correspondait le chiffre 30...ce sont des pixels, des cm..?

Je voudrais en fait fixer la taille des colonnes selon la taille du titre, ou selon un élément si sa taille est plus grande que le titre (l'élément est celui de plus grande taille par rapport à tous les autres).

J'arrive a connaitre les différentes tailles en récupérant le nombre de caractères, mais comment faire correpondre ette taille pour la largeur de ma colonne.

Par exemple, si mon plus grand chiffre est sur 10 caractères alors que le titre seulement sur 6 (number), comment faire correspondre cette taille dans le setPreferredWidth..?

D'avance merci.

Répondre à yannou

3

JavaStunt, le 22 mai 2007 à 12:01:49
  • +1

TableColumn column = null;
for (int i = 0 ; i < 2 ; i++)
{
column = table.getColumnModel().getColumn(i);
switch (i)
{
case 0 :
column.setPreferredWidth(120);
break;
case 1 :
column.setPreferredWidth(50);
break;
}
}

ou table est ta table :).

Répondre à JavaStunt

4

bendede, le 30 mai 2007 à 14:18:29

Merci

Répondre à bendede