Utiliser un personnaliséTableCellRenderer, et spécifier setHorizontalAlignment(JLabel.RIGHT). Il y a un exemple associé ici qui illustre JLabel.CENTER.
Addendum: Mon problème est de rembourrage et de l'alignement.
Si vous voulez que le rembourrage à l'intérieur de la cellule, plutôt que entre cellules, vous pouvez utiliser une frontière dans le moteur de rendu, comme @Guillaume Polet suggère. Notez que la frontière peut être asymétrique; l'exemple ci-dessous dpa sur la droite.
Salut @trashgod Mais mon problème est de rembourrage et de l'alignement. Pourrait la marge intérieure des cellules également être ajusté à l'aide d'un custom TableCellRenderer? Oui, il suffit de préciser setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); J'ai élaboré ci-dessus sur @Guillaume Polet de la suggestion. sauf que maintenant il ne s'aligne pas avec l'en-tête de table... Pouvez-vous changer le HeaderRenderer?
Légèrement d'une version améliorée de @trashgod la réponse correcte est composé de la frontière avec le rembourrage: cela garantit que la valeur par défaut frontières (f.j'. l'indicateur de mise au point) ne sont pas perdus:
Donner un essai avec setInternalcellSpacing(Dimension d), de la JTable.Ceci permettra de définir des espaces des deux côtés.Si vous strictement souhaitez avoir dans un côté l'utilisation d'un moteur de rendu comme ici
Qu'est-ce que setInternalSpacing? Il signifiait probablement javax.swing.JTable.setIntercellSpacing(Dimension) oui je voulais dire javax.swing.JTable.setIntercellSpacing(Dimension) qui Définit la rowMargin et la columnMargin ( la hauteur et la largeur de l'espace entre les cellules )
Utiliser un personnalisé
TableCellRenderer
, et spécifiersetHorizontalAlignment(JLabel.RIGHT)
. Il y a un exemple associé ici qui illustreJLabel.CENTER
.Addendum: Mon problème est de rembourrage et de l'alignement.
Si vous voulez que le rembourrage à l'intérieur de la cellule, plutôt que entre cellules, vous pouvez utiliser une frontière dans le moteur de rendu, comme @Guillaume Polet suggère. Notez que la frontière peut être asymétrique; l'exemple ci-dessous dpa sur la droite.
Oui, il suffit de préciser
setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
J'ai élaboré ci-dessus sur @Guillaume Polet de la suggestion.
sauf que maintenant il ne s'aligne pas avec l'en-tête de table...
Pouvez-vous changer le
HeaderRenderer
?OriginalL'auteur trashgod
Légèrement d'une version améliorée de @trashgod la réponse correcte est composé de la frontière avec le rembourrage: cela garantit que la valeur par défaut frontières (f.j'. l'indicateur de mise au point) ne sont pas perdus:
Ou de l'utilisation SwingX' JXTable et décorer le moteur de rendu avec un Surligneur:
OriginalL'auteur kleopatra
Donner un essai avec setInternalcellSpacing(Dimension d), de la JTable.Ceci permettra de définir des espaces des deux côtés.Si vous strictement souhaitez avoir dans un côté l'utilisation d'un moteur de rendu comme ici
setInternalSpacing
?Il signifiait probablement
javax.swing.JTable.setIntercellSpacing(Dimension)
oui je voulais dire javax.swing.JTable.setIntercellSpacing(Dimension) qui Définit la rowMargin et la columnMargin ( la hauteur et la largeur de l'espace entre les cellules )
OriginalL'auteur Sanjaya Liyanage