Comment puis-je créer un JTable où la première colonne est toujours dans le JScrollPane fenêtre d'affichage?
Quelle est la meilleure façon de mettre en place une table dans un JScrollPane que la première colonne est toujours sur l'écran et dans la même position, indépendamment de défilement horizontal des chevauchements et des colonnes de passer en dessous?
Lorsque la barre de défilement est à l'extrême gauche, les colonnes sembler normal, mais en tant que l'utilisateur fait défiler vers la droite, les colonnes secondaires (2), se déplacer en dessous de la première jusqu'à la dernière colonne apparaît à l'extrême droite de la fenêtre d'affichage?
J'ai trouvé un échantillon prélevé à partir d'Eckstein "Java Swing" livre de ce genre de fait cela, mais il ne permet pas de redimensionnement de la première colonne. Je pensais à un système où un Composite tenue horizontale de la structure et une table contenant les colonnes secondaires et de l'autre un Composite qui flottait au-dessus d'eux (fixe indépendamment de défilement). La structure serait de garder la fenêtre d'affichage de la gamme constante, comme la première colonne flottait autour. Idéalement, je pouvais le faire avec deux tables à l'aide du même modèle, mais je ne sais pas si l'idée est un naïf solution.
Je serais l'idéal d'une configuration où plusieurs tables sont sur le même composant scrollpane verticalement, où tous leurs premières colonnes sont alignées et avancer ensemble et il y a peu de lacunes horizontales entre les différents tableaux.
OriginalL'auteur voodoogiant | 2010-03-30
Vous devez vous connecter pour publier un commentaire.
Fixe Du Tableau De La Colonne n'est plus de ce dont vous avez besoin.
Il ne prend pas en charge le redimensionnement de la colonne fixe de sorte que vous devez ajouter le code comme:
OriginalL'auteur camickr
JScrollPane a une zone spécifiquement pour ce, l'en-tête de ligne (voir le diagramme dans le API🙂
Tout ce que vous devez faire est de:
- créer un supplément de JTable pour cette zone fixe
- crochet jusqu'à la première colonne de votre modèle de données
- définir comme la ligne d'en-tête
- et dans la table principale d'omettre ou de supprimer la première colonne de données.
Lorsque le composant scrollpane défiler vers le haut et vers le bas les deux tables de défilement de la synchronisation sans ajout de code. Lorsque le composant scrollpane défile horizontalement la ligne d'en-tête est toujours rester visible et seule la table principale des parchemins.
Pour la plupart des cas, le seul ajout d'un code dont vous aurez besoin est pour la colonne de redimensionnement, comme camickr l'exemple.
OriginalL'auteur Keilly
Découvrez cette classe, extrait de http://fahdshariff.blogspot.sg/2010/02/freezing-columns-in-jtable.html
Par la suite, il suffit d'appeler la méthode constructeur:
OriginalL'auteur George
Je pense que vous êtes sur la bonne voie. Ce que vous conceptuellement ont est une table avec un en-tête de colonne pour chaque ligne. Je voudrais utiliser deux tables: l'une a 'gauche' de la colonne et l'autre a tous les autres. Alors je voudrais les présenter dans un JSplitPane avec la "colonne de gauche" table sur la gauche et le reste sur la droite. Il y aurait une seule barre de défilement verticale qui contrôlait le décalage en y de deux tables, et une seule barre de défilement horizontale de contrôler le volet de droite (uniquement).
Vous pouvez également utiliser les fonctionnalités avancées de JScrollPane pour définir un "en-tête" sur la gauche de la principale zone de défilement. Je ne l'ai jamais fait, mais vous pourriez être en mesure de l'utiliser comme "en-têtes" de vos lignes.
OriginalL'auteur DJClayworth