JTable Plusieurs Lignes D'En-Tête
Je suis l'aide d'une JTable dans mon application et que vous souhaitez avoir 2 lignes pour les titres, semblable à ceci:
Est-ce possible ou dois-je faire autre chose? Si oui, quoi? À l'aide de Supertitle-titleA, SuperTitle-titleB va prendre trop de place et de rendre l'information redondante.
Ce travail? esus.com/javaindex/j2se/jdk1.2/javaxswing/...
il n'est pas pris en charge par le noyau de la Balançoire et il n'est pas trivial à réaliser (beaucoup de démons dans la sale de détails). Donc, si vous avez des fonds à dépenser, je suggère d'aller pour une solution commerciale (qui pourrait ne pas être optimale, mais ensuite, vous pouvez jeter en arrière et de pointer du doigt ;.)
Je ne peux pas vraiment aller pour une option commerciale sur celui-ci.
Cette question est posée assez souvent. Et des solutions ont été partielle: des colonnes ou seulement de base look and feel, ou 2 lignes seulement, ou une licence commerciale. Il existe aujourd'hui une solution libre avec L&F soutien, la capacité de déplacer des colonnes et nombre arbitraire de lignes. Je vous laisse un lien pour les futurs chercheurs à cette réponse.
il n'est pas pris en charge par le noyau de la Balançoire et il n'est pas trivial à réaliser (beaucoup de démons dans la sale de détails). Donc, si vous avez des fonds à dépenser, je suggère d'aller pour une solution commerciale (qui pourrait ne pas être optimale, mais ensuite, vous pouvez jeter en arrière et de pointer du doigt ;.)
Je ne peux pas vraiment aller pour une option commerciale sur celui-ci.
Cette question est posée assez souvent. Et des solutions ont été partielle: des colonnes ou seulement de base look and feel, ou 2 lignes seulement, ou une licence commerciale. Il existe aujourd'hui une solution libre avec L&F soutien, la capacité de déplacer des colonnes et nombre arbitraire de lignes. Je vous laisse un lien pour les futurs chercheurs à cette réponse.
OriginalL'auteur Jonno_FTW | 2012-07-26
Vous devez vous connecter pour publier un commentaire.
Nous avons eu la même exigence dans notre dernier projet. Ce que j'ai trouvé est une Implémentation pour un GroupableTableHeader sur java2s.com. Cependant, j'ai pimper un peu, bien que je ne me rappelle plus quoi exactement. Sous est la mise en œuvre des trois classes que la façon dont nous les utilisons.
ColumnGroup.java
GroupableTableHeader.java
GroupableTableHeaderUI.java
Malheureusement mon code manque aussi de ces capacités. Mais je suppose que je dois corriger dans les prochaines semaines. Quand je suis prêt, je vais poster la solution ici.
désolé pour vous mettre sur la sellette 😉
Merci pour le code, mais sur la ligne 25 de
GroupableTableHeader
vous nesetDefaultRenderer(new MultiLineHeaderRenderer());
. Mais cette classe ne peut pas être résolu. Où l'avez-vous?Vous pouvez simplement supprimer cette ligne. C'est juste un moteur de rendu pour envelopper la tête de la colonne sur plusieurs lignes.
OriginalL'auteur Roland Schneider
Oui, vous avez besoin de fournir votre propre JTableHeader. Le difficile est livré en essayant de mise en page.
Vous aurez besoin de regarder à JTableHeader.getHeaderRect(colonne), ce qui signifie que le moteur de rendu façon de mettre en page les en-têtes de colonne.
Vous allez avoir à prendre en considération la hauteur de chaque colonne de moteur de rendu, ainsi que la hauteur du composant que vous souhaitez utiliser une étiquette de rendu (je vous conseille d'utiliser l'en-Tête de colonne du moteur de rendu comme une des bases, mais c'est à vous de voir)
OriginalL'auteur MadProgrammer
Tenir compte de l'espace entre les colonnes (lorsque plus de deux colonnes se joindre à un groupe droite de la bordure de la colonne groupe de devenir invisible).
Voici la solution:
OriginalL'auteur Anzhi